如何将auto_increment
添加到MySQL表的现有列?
答案 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);