我有一个带有'Text'字段的表。插入数据时,“id”字段会自动增加。我运行这个查询:
INSERT into answer (Text) VALUES ('Test');
INSERT into answer (Text) VALUES ('Test');
INSERT into answer (Text) VALUES ('Test');
INSERT into answer (Text) VALUES ('Test');
Delete From answer;
我需要获取未来的ID(当我将插入下一个文本时)。你可以帮我查询一下,我的数字= 5(但不是1,因为'id'会自动增加)?
答案 0 :(得分:4)
你无法知道 next auto_increment值。好吧,可能不是你想象的方式。您只能可靠地获取所使用的 last (使用LAST_INSERT_ID()
)。
有些人可能会告诉你另一种方式:“这很容易,只需要LAST_INSERT_ID()+1
”。
但这是糟糕的想法。为什么?因为将有并发访问您的数据库。所以你可能猜到表中的下一个ID。但不是您的交易中的下一个ID。
(此外,根据您的数据库设置,auto_increment步骤可能大于1 - 请参阅http://dev.mysql.com/doc/refman/5.0/en/replication-options-master.html#sysvar_auto_increment_increment)