我正在使用MySQL。改變表格以添加外鍵
我有一個名爲school
的現有表,其中填充了數百行數據。現在我有另一個表名爲student
,它的主鍵是「sid」。
我想alter我的school
表有一個外鍵引用student
。
我嘗試以下SQL語句:
ALTER TABLE school ADD FOREIGN KEY (sid) REFERENCES student(sid);
,但我得到的錯誤:
ERROR 1072 (42000): Key column 'sid' doesn't exist in table
什麼是改變表添加一個外鍵到另一個表中的正確方法是什麼?
您應該首先在該列上添加一個索引,我認爲? – Nanne
我認爲這取決於使用。如果需要的話,通常會添加。 – Minoru
嗯,我已經看過它:它不取決於實際使用,它取決於你使用的引擎。如果您使用InnoDB,則只能將外鍵添加到索引列。 (請參閱http://dev.mysql.com/doc/refman/5.6/en/innodb-foreign-key-constraints.html:_InnoDB允許外鍵引用任何索引列或一組列,但在引用表中,必須有一個索引,其中列出的引用列以相同順序列出的第一列._) – Nanne