我有一个奇怪的问题与mysql.
我试图改变一个表的列,这是一个主键,并在其上定义了auto_increment约束.这也是多个其他表的外键引用.我需要在父级和所有子级中更改此列的长度.
set foreign_key_checks=0;
alter table Parent modify Identifier smallint(10) unsigned;
alter table Child_1 modify FK_Identifier smallint(10) unsigned;
alter table Child_2 modify FK_Identifier smallint(10) unsigned;
alter table Child_3 modify FK_Identifier smallint(10) unsigned;
alter table Child_4 modify FK_Identifier smallint(10) unsigned;
alter table Child_5 modify FK_Identifier smallint(10) unsigned;
set foreign_key_checks=1;
Run Code Online (Sandbox Code Playgroud)
这将删除父表上的自动增量.添加约束的最佳方法是什么?
以下似乎都失败了.
mysql> ALTER TABLE Parent MODIFY Identifier smallint(10) PRIMARY KEY AUTO_INCREMENT;
ERROR 1068 (42000): Multiple primary key defined
ALTER TABLE Parent MODIFY Identifier smallint(10) AUTO_INCREMENT;
------------------------
LATEST FOREIGN KEY ERROR
------------------------ …
Run Code Online (Sandbox Code Playgroud)