首页 > 解决方案 > 如何将现有表设置修改为自动增加 P​​K 字段?

问题描述

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

此表有一个设置为PK的id字段。问题是创建此表时,此字段未设置为auto increment

我还尝试删除此字段并再次添加它,将其设置为自动增量,但我不能这样做,因为它在其他表中用作 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字段并再次创建它作为自动增量。

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

标签: mysqlsqldatabaserdbms

解决方案


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

ALTER TABLE LivestockMessage MODIFY COLUMN id INT AUTO_INCREMENT;

(该表将保留其PRIMARY KEY对 的约束id。)

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


推荐阅读