2013-03-11 185 views
0

我試圖創建一個表,但我有一個問題,foreign key 這是我試過的腳本:添加外鍵約束

CREATE TABLE IF NOT EXISTS note_etudiant(
    num_insc int auto_increment, 
    cin int foreign key references T_utilisateur(cin), 
    nom varchar(25), 
    note float 
)Engine=InnoDB DEFAULT CHARSET=latin1; 

這是我得到的錯誤:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'foreign key references T_utilisateur(cin), nom varchar(25), no' at line 3

回答

0

你需要n您的列創建後,列出你的外鍵約束

cin int, 
constraint foreign key (cin) references T_utilisateur(cin), 
+0

當我嘗試這樣做,我得到這個錯誤:'1075 - 不正確的表定義;只能有一個自動列,它必須被定義爲一個鍵',所以我定義了列'num_insc'作爲主鍵,然後我得到這個錯誤:'1005 - 無法創建表'gestion_note.note_etudiant'(errno :150)' – user1726655 2013-03-11 21:33:02

0

你從而獨立於列創建外鍵。我還建議單獨創建索引,以便可以控制索引的名稱。

嘗試這樣:

CREATE TABLE IF NOT EXISTS note_etudiant(
    num_insc int auto_increment, 
    cin int, 
    nom varchar(25), 
    note float, 
    primary key (num_insc), 
    key cin (cin), 
    constraint fk_note_etudiant_to_t_utilisateur foreign key (cin) references T_utilisateur(cin) 
)Engine=InnoDB DEFAULT CHARSET=latin1; 
+0

我試過這個腳本,我得到了這個錯誤:'1075 - 錯誤的表定義;只能有一個自動列,它必須被定義爲一個鍵' – user1726655 2013-03-11 21:23:26

+0

我編輯它使num_insc成爲主鍵。再試一次。 – 2013-03-11 21:25:23

+0

這也行不通,這是我得到的錯誤: '1005 - 無法創建表'gestion_note.note_etudiant'(errno:150)' – user1726655 2013-03-11 21:30:02