簡體   English   中英

更改表以添加外鍵

[英]Alter table to add a foreign key

我正在使用MySQL。

我有一個名為school的現有表,其中填充了數百行數據。 現在我有另一個名為student表,它的主鍵是“ sid ”。

我想改變我的school表,以便為student提供外鍵參考。

我嘗試了以下sql語句:

ALTER TABLE school ADD FOREIGN KEY (sid) REFERENCES student(sid);

但我得到錯誤:

ERROR 1072 (42000): Key column 'sid' doesn't exist in table

更改表以將外鍵添加到另一個表的正確方法是什么?

您必須先在表格上添加列sid

ALTER TABLE school ADD COLUMN sid [INT, VARCHAR2(10];
ALTER TABLE school ADD FOREIGN KEY (sid) REFERENCES student(sid);

PS:我把[INT, VARCHAR2(10]因為我不知道學生(sid)是什么類型。只需改為正確的。

你想在哪里鏈接你的外鍵?

您似乎錯過了在學校表格中鏈接的關鍵:

據我所知,你想把學生和他的學校聯系起來。

所以我要做的是在學生表中添加一列:

ALTER TABLE STUDENT
ADD COLUMN SCHOOL_ID INT NOT NULL;

然后我在STUDENT表中創建外鍵指向SCHOOL

ALTER TABLE STUDENT
ADD FOREIGN KEY (F_SCHOOL_ID) REFERENCES SCHOOL(ID);

這是最好的方式,而不是相反。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM