如何将AUTO_INCREMENT添加到现有的列?
在避免“重复输入”错误的情况下,为具有数据的表添加AUTO_INCREMENT的方法:
-
使用INSERT SELECT复制带有数据的表:
CREATE TABLE backupTable LIKE originalTable; INSERT backupTable SELECT * FROM originalTable;
-
从originalTable中删除数据(以删除重复的条目):
TRUNCATE TABLE originalTable;
-
添加AUTO_INCREMENT和PRIMARY KEY:
ALTER TABLE originalTable ADD id INT PRIMARY KEY AUTO_INCREMENT;
-
将数据复制回originalTable(不包含新创建的列(id),因为它将自动填充)
INSERT originalTable (col1, col2, col3) SELECT col1, col2,col3 FROM backupTable;
-
删除备份表backupTable:
DROP TABLE backupTable;
有关使用CREATE LIKE复制表的更多信息:
我认为你想使用ALTER TABLE
命令修改列的描述。可能是类似于下面的语句:
ALTER TABLE users MODIFY id INTEGER NOT NULL AUTO_INCREMENT;
在运行上述语句之前,请确保id
列有主索引。