Mysql 外键语法

Mysql 外键语法,mysql,database,database-design,Mysql,Database,Database Design,我首先创建了教师表,其描述如下 mysql> desc teacher; +--------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+-------------+------+-----+---------+-------+ | TEACHER

我首先创建了教师表,其描述如下

   mysql> desc teacher;
   +--------------+-------------+------+-----+---------+-------+
   | Field        | Type        | Null | Key | Default | Extra |
   +--------------+-------------+------+-----+---------+-------+
   | TEACHER_ID   | varchar(3)  | NO   | PRI | NULL    |       |
   | TEACHER_NAME | varchar(40) | YES  |     | NULL    |       |
   +--------------+-------------+------+-----+---------+-------+
在我创建了一个新表之后,如下所示。我需要的是,在下表中,我想使用
TEACHER\u ID
作为外键。我写了以下内容。我不知道它在语法上是否是错误的意思。但我没有得到任何错误

 mysql> CREATE TABLE SUB_MCA_TY
->  (SUB_ID VARCHAR(4) PRIMARY KEY,
->  SUB_NAME VARCHAR(30),
-> TEACHER_ID VARCHAR(3) REFERENCES TEACHER(TEACHER_ID));
MySQL总是默默地忽略“内联”外键,即使使用InnoDB(欢迎来到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)
);
:

MySQL不识别或支持“内联引用规范”(如SQL标准中所定义),其中引用被定义为列规范的一部分