如何将AUTO INCREMENT添加到现有列?

时间:2011-02-17 23:07:35

标签: mysql auto-increment

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

9 个答案:

答案 0 :(得分:89)

我认为您希望MODIFY列为ALTER TABLE command所述。它可能是这样的:

ALTER TABLE users MODIFY id INTEGER NOT NULL AUTO_INCREMENT;

在上面运行之前,请确保id列具有主索引。

答案 1 :(得分:9)

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

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

答案 2 :(得分:4)

只需添加auto_increment Constraint In列或MODIFY COLUMN: -

 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;

答案 3 :(得分:3)

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

1.)将整个表导出为.sql文件
2.)出口后删除表格 2.)CREATE_TABLE命令中是否需要更改
3.)从.sql文件执行CREATE_TABLE和INSERT_INTO命令 ...... et viola

答案 4 :(得分:0)

我设法使用以下代码执行此操作:

ALTER TABLE `table_name`
CHANGE COLUMN `colum_name` `colum_name` INT(11) NOT NULL AUTO_INCREMENT FIRST;

这是我可以使列自动增量的唯一方法。

INT(11)显示最大int长度为11,如果需要,可以跳过它。

答案 5 :(得分:0)

Alter table table_name modify table_name.column_name data_type AUTO_INCREMENT;

例如:

Alter table avion modify avion.av int AUTO_INCREMENT;

答案 6 :(得分:0)

如果您有FK约束并且不想从表中删除约束。使用“索引”而不是主要的。那么您就可以将其类型更改为自动递增

答案 7 :(得分:0)

第一列中有现有数据,它们是0。 首先,我将第一列设置为可空。 然后,我将列的数据设置为null。 然后,我将该列设置为索引。 然后,将其设为自动增量功能的主键。这是我上面其他人回答的地方:

ALTER TABLE `table_name` CHANGE COLUMN `colum_name` `colum_name` INT(11) NOT NULL AUTO_INCREMENT FIRST;

此操作将数字从1开始添加到该表的所有行中。如果我先运行上面的代码,那是行不通的,因为所有值都是0。并且在使其自动递增之前还需要使其成为索引。 接下来,我将该列作为主键。

答案 8 :(得分:-2)

ALTER TABLE Table name ADD column datatype AUTO_INCREMENT,ADD primary key(column);