[英]How can I add a column to the primary key of a MySQL InnoDB table?
我有表foo和bar:
create table foo(a int, b varchar(10),
primary key (a));
create table bar(a int, c int, d int,
primary key (a,c),
foreign key(a) references foo(a));
現在,我有一個新列e
,需要參與bar的主鍵。 我怎樣才能做到這一點? 看來我應該能夠刪除主鍵,添加列並創建新的主鍵,但是嘗試刪除主鍵會給我:
mysql> alter table bar drop primary key;
ERROR 1025 (HY000): Error on rename of './mydb/#sql-1e08_16a273' to './mydb/bar' (errno: 150)
僅在主鍵包含外鍵列的情況下才是這種情況。
這個其他stackoverflow問題可能會幫助您。
我的猜測是您需要先刪除外鍵,然后再刪除主鍵。
將e列添加到bar表,然后通過發出以下MySQL特定命令來更新主鍵:
ALTER TABLE bar DROP PRIMARY KEY, ADD PRIMARY KEY (a, c, e);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.