更改表以添加外键

时间:2013-12-13 13:54:26

标签: mysql sql database

我正在使用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

更改表以将外键添加到另一个表的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

您必须先在表格上添加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)的类型。只需改为正确的。

答案 1 :(得分:1)

你想在哪里链接你的外键?

似乎你错过了在学校表格中链接的关键:

据我所知,您想将学生与学校联系起来。

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

ALTER TABLE STUDENT
ADD COLUMN SCHOOL_ID INT NOT NULL;

然后我在STUDENT表中创建外键以指向SCHOOL

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

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