如何将AUTO_INCREMENT添加到现有的列?

25 浏览
0 Comments

如何将AUTO_INCREMENT添加到现有的列?

如何把auto_increment添加到 MySQL 表的一个已存在的列?

admin 更改状态以发布 2023年5月21日
0
0 Comments

在避免“重复输入”错误的情况下,为具有数据的表添加AUTO_INCREMENT的方法:

  1. 使用INSERT SELECT复制带有数据的表:

    CREATE TABLE backupTable LIKE originalTable; 
    INSERT backupTable SELECT * FROM originalTable;
    

  2. 从originalTable中删除数据(以删除重复的条目):

    TRUNCATE TABLE originalTable;
    

  3. 添加AUTO_INCREMENT和PRIMARY KEY:

    ALTER TABLE originalTable ADD id INT PRIMARY KEY AUTO_INCREMENT;
    

  4. 将数据复制回originalTable(不包含新创建的列(id),因为它将自动填充)

    INSERT originalTable (col1, col2, col3) 
    SELECT col1, col2,col3
    FROM backupTable;
    

  5. 删除备份表backupTable:

    DROP TABLE backupTable;
    

有关使用CREATE LIKE复制表的更多信息:

复制MySQL表,索引和数据

0
0 Comments

我认为你想使用ALTER TABLE命令修改列的描述。可能是类似于下面的语句:

ALTER TABLE users MODIFY id INTEGER NOT NULL AUTO_INCREMENT;

在运行上述语句之前,请确保id列有主索引。

0