如何将现有的 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 将保留其对 id
的 PRIMARY KEY
约束。)
我在尝试修改 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 将保留其对 id
的 PRIMARY KEY
约束。)