[英]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.