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

oo7oh9g9  于 2021-06-24  发布在  Mysql
关注(0)|答案(2)|浏览(415)

我发现在试图修改一个有错误的mysql表时遇到了一些困难。
此表有一个设置为pk的id字段。问题是创建此表时,此字段没有设置为自动递增。
我还尝试删除此字段并将其再次添加设置为自动递增,但我无法执行此操作,因为这在其他表中用作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字段,然后以自动递增的方式再次创建它。
但是,我如何修改我的表设置为自动递增wo不做所有这些程序?

vsdwdz23

vsdwdz231#

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

ALTER TABLE LivestockMessage MODIFY COLUMN id INT AUTO_INCREMENT;

(表格将保留 PRIMARY KEY 约束 id .)
http://sqlfiddle.com/#!9月6日1697/3

9njqaruj

9njqaruj2#

尝试添加自动递增选项:

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

或者使用mysql work bench在列配置上选择ai选项:

相关问题