如何将现有表设置修改为自动增加PK字段?

时间:2018-04-25 09:39:12

标签: mysql sql database rdbms

我发现在尝试修改带有错误的 MySql 表时遇到了一些困难。

此表格的 id 字段设置为 PK 。问题是,创建此表时,此字段未设置为自动增量

我还尝试删除此字段并再次添加将其设置为自动增量,但我无法执行此操作,因为这在其他表中用作FK,实际上我收到此错误消息:

#HY000Cannot drop column 'id': needed in a foreign key constraint 'FK_LivestockMessageDetails_LivestockMessage' of table 'digital_services_DB.LivestockMessageDetails'
while executing:
ALTER TABLE LivestockMessage
  DROP `id`,
  ENGINE=InnoDB ROW_FORMAT=DYNAMIC DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci

我知道我可以删除FK,删除 id 字段并再次创建为自动增量。

但是我如何修改我的表格,将其设置为自动增量,而不是执行所有这些程序?

2 个答案:

答案 0 :(得分:1)

更改表并修改列以包含AUTO_INCREMENT选项?

ALTER TABLE LivestockMessage MODIFY COLUMN id INT AUTO_INCREMENT;

(该表格会在PRIMARY KEY上保留id约束。)

http://sqlfiddle.com/#!9/6a1697/3

答案 1 :(得分:-1)

尝试添加自动增量选项:

ALTER TABLE `your_db`.`LivestockMessage` 
CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT ;

或使用MySQL Work Bench选择列配置上的AI选项:

enter image description here