我们有一张桌子:
id int(11) auto_increment
name varchar(255)
auto_increment等于1。 插入行:
INSERT INTO `projects` ( `id` , `name`) VALUES ('350', 'project one');
现在auto_increment
等于351。
更新行:
UPDATE `projects` SET `id` = '351' WHERE `id` = 350 LIMIT 1 ;
auto_increment
仍然等于351.如果尝试插入一行,我们会收到错误:
#1062 - Duplicate entry '351' for key 1
我们如何看到INSERT
更改auto_increment和UPDATE
不会更改auto_increment
。
我的目标是更新行并设置id
大于auto_increment
。
怎么做?
答案 0 :(得分:1)
首先,您为什么要设置自动增量值?让它完成它的工作(线索 - 它是自动的)。
所以最好的解决方案是当你插入一行时,让自动增量为你选择合适的值,并让该值成为该行生命周期的不变量。
否则只需从表定义中删除auto_increment
位并自行实现适当的系统。