如何将现有的 table 设置修改为自动递增 PK 字段?

How can I modify an existing table setting as auto increment the PK field?

我在尝试修改 MySql table 时遇到一些困难。

此 table 有一个 id 字段设置为 PK。问题是当这个 table 创建时这个字段没有设置为 auto increment.

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

但是我如何修改我的 table 将其设置为自动递增而不执行所有这些过程?

尝试添加自动递增选项:

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

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

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

ALTER TABLE LivestockMessage MODIFY COLUMN id INT AUTO_INCREMENT;

(table 将保留其对 idPRIMARY KEY 约束。)

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