如何将AUTO_INCREMENT添加到现有列?

如何将auto_increment添加到MySQL表的现有列?

我想你想MODIFY ALTER TABLE命令所描述的列。 这可能是这样的:

 ALTER TABLE t1 MODIFY b INTEGER NOT NULL AUTO_INCREMENT; 

将AUTO_INCREMENT添加到带有数据的表格的方法同时避免“ 重复input ”错误:

  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(不要包含新创build的列(id),因为它会自动填充)

     INSERT originalTable (col1, col2, col3) SELECT col1, col2,col3 FROM backupTable; 
  5. 删除backupTable:

     DROP TABLE backupTable; 

我希望这是有用的!

更多关于使用CREATE LIKE重复表格:

复制一个MySQL表,索引和数据

 Alter table table_name modify column_name datatype(length) AUTO_INCREMENT PRIMARY KEY 

你应该添加主键自动增量,否则你在mysql中出错。

如果你想改变非空表的AUTO_INCREMENT属性,这对我有用:

1.)将整个表格导出为.sql文件
2.)导出后删除表
2.)在CREATE_TABLE命令中需要更改
3.)从.sql文件中执行CREATE_TABLE和INSERT_INTO命令
…中提琴

只需在列或修改列中添加auto_increment约束: –

  ALTER TABLE `emp` MODIFY COLUMN `id` INT NOT NULL UNIQUE AUTO_INCREMENT FIRST; 

或先添加一列,然后更改列 –

 1. Alter TABLE `emp` ADD COLUMN `id`; 2. ALTER TABLE `emp` CHANGE COLUMN `id` `Emp_id` INT NOT NULL UNIQUE AUTO_INCREMENT FIRST;