如果我从表中删除了最大ID(例如9,10,11),sql
将不会从最大现有ID开始!它从12开始!
sql
根据现有的最大ID添加新ID?此代码仅查找现有内容而不是已删除的ID:
select max(id) from table1
答案 0 :(得分:3)
如果从表中删除最大ID(例如9,10,11),则sql不会从最大现有ID开始!它从12开始!
这是正确的。这没有什么令人惊讶或惊叹的。这就是RDBMS的工作方式。
1-是否可以让sql根据现有的max id添加新的id?
根本不容易。事实上,它是如此困难,并且任何尝试这样做都会与您正在使用的特定RDBMS绑定(即,不可移植),建议您甚至不要尝试。这是因为RDBMS是为高度并发使用而构建的,因此它们必须能够防止不同客户端插入不一致的主键值。
2-如何在表格中获得最大主键自动增量
表"中确实没有" max主键自动增量这样的东西,因为当有人在表中插入行时,它可能会以非常快的速度变化,所以当你的时候select max(id) from table1
会向您返回一个值,数据库中的实际最大值可能已经不同了。