2013-03-06 43 views
3

我已經創建了教師表第一,其描述是外鍵語法

mysql> desc teacher; 
    +--------------+-------------+------+-----+---------+-------+ 
    | Field  | Type  | Null | Key | Default | Extra | 
    +--------------+-------------+------+-----+---------+-------+ 
    | TEACHER_ID | varchar(3) | NO | PRI | NULL |  | 
    | TEACHER_NAME | varchar(40) | YES |  | NULL |  | 
    +--------------+-------------+------+-----+---------+-------+ 

我創建了一個新表後如下。我需要的是,下表中我想用TEACHER_ID爲外鍵。我已經寫了following.I硝基甲苯知道是否是錯誤的方法syntactically.But我沒有得到任何錯誤...

mysql> CREATE TABLE SUB_MCA_TY 
-> (SUB_ID VARCHAR(4) PRIMARY KEY, 
-> SUB_NAME VARCHAR(30), 
-> TEACHER_ID VARCHAR(3) REFERENCES TEACHER(TEACHER_ID)); 

回答

10

「內聯」外鍵總是由MySQL簡單地忽略,即使InnoDB(歡迎來到wonderfu升的MySQL一致的世界...)

您需要的列後,改變成一個明確的約束:

CREATE TABLE SUB_MCA_TY 
(
    SUB_ID VARCHAR(4) PRIMARY KEY, 
    SUB_NAME VARCHAR(30), 
    TEACHER_ID VARCHAR(3), 
    foreign key (TEACHER_ID) REFERENCES TEACHER(TEACHER_ID) 
); 

Quote from the manual

MySQL不支持或識別「內聯參考規範「(在SQL標準中定義),其中參考文件定義爲列規範的一部分