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标准中所定义),其中引用被定义为列规范的一部分