【发布时间】:2018-05-14 19:31:13
【问题描述】:
我有以下代码从表中获取最新条目。
$con = mysqli_connect($host,$username,$password,$database);
$result = $con->query("SELECT MAX(ID) FROM Samples");
$newest = $result->fetch_assoc();
字段ID 是主键,具有自动增量。我没有代码可以更改ID 的值。
当我测试代码时,它总是成功地产生最新的条目,但我不知道这是否是我可以依赖的行为。这会一直有效吗?如果没有,是否有更可靠的方法来获取最新条目?
【问题讨论】:
-
答案是肯定的。
-
这几乎是真的,但不是 总是 因为某些极端情况......我特别考虑 MyISAM 对组的 AUTO_INCREMENT 特殊处理,当 autoinc 列不是第一个时索引中的列。此外,innodb_autoinc_lock_mode 可以影响多个并发会话的行为,并且没有什么可以阻止语句为 AUTO_INCREMENT 列提供值(如果没有提供值,则会自动分配值,或者提供 NULL 值或 0 值。(不要依赖
MAX(id)来获取前一个 INSERT 的 auto_increment 值。)
标签: mysql sql auto-increment