我正在使用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
更改表以将外键添加到另一个表的正确方法是什么?
答案 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);
这是最好的方式,而不是相反。