使用PHP和MySQL,我想获取 MySQL 中未来 ID 的编号,之后的编号,如 nextincrement。我怎样才能做到这一点?
问问题
261 次
2 回答
1
确实不可能做到可靠。你可以这样做select max(id)+1
,但如果你有回滚事务和/或并行进程正在运行,那将会失败。
最好的方法是:
- 开始交易。
- 插入骨架记录并执行 a
select last_insert_id()
以获取其 ID - 将该 ID 用于任何子/并行记录更新
- 用您需要的任何其他内容填充骨架记录
- 提交事务。
如果任何阶段失败,则回滚事务,并丢弃该 ID,因为它是无效的并且永远不会再次使用。
于 2013-02-15T14:58:11.220 回答
0
如果你只是在数据库中插入一些东西,你可以使用 mysqli_insert_id()
从那里,只需添加一个即可获得下一个。
于 2013-02-15T14:57:56.223 回答