1.在已存在的表中添加字段约束AUTO_INCREMENT修饰符
mysql> alter table user modify uid int auto_increment primary key;
ERROR 1062 (23000): ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '1' for key 'PRIMARY'
理解:uid有0, 而auto_increment是从1开始, 所以修改失败.
把uid字段的0改成非零后, 再修改添加就可以了:
mysql>UPDATE USER SET uid=2 WHERE uid=0;
mysql>alter table user modify uid int auto_increment;
成功!
2.在已存在的表中删除字段约束AUTO_INCREMENT修饰符
mysql>alter table user modify uid int;
如果表中存在其他约束, 如primary key, 依然存在, 需再删除一次约束:
mysql>alter table user drop primary key;
注 : 如果primary key和auto_increment同时存在, 需先删除auto_increment, 才能删除primary key.