mysql 在已存在的表中添加/删除字段约束AUTO_INCREMENT遇到的问题

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.

猜你喜欢

转载自www.cnblogs.com/ayeex/p/10992872.html