约束错误MySQL 5.6同时使用一个外键创建两个表

时间:2016-10-11 21:53:50

标签: mysql syntax-error

我需要一点帮助下面的SQL代码。我正在使用MySQL 5.6:

CREATE TABLE REGION   (
REGION_CD       varchar(200),               
REGION_NAME     Text (50),      
Constraint REGION_PK Primary Key (REGION_CD(200)));

CREATE TABLE CUSTOMER (
CUST_ID         long (50)
CUST_NAME       Text (50), 
REGION_CD       varchar (2), 
Constraint Customer_PK Primary Key 
(CUST_ID(50)), 
Constraint C_REGION_CD_FK 
Foreign Key (REGION_CD) 
References REGION);

这是我的错误消息:

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   '(50)CUST_NAME文本(50)附近,REGION_CD varchar(2),约束   Customer_PK Pr'在第2行

1 个答案:

答案 0 :(得分:2)

外键关系中涉及的字段必须具有相同的类型定义。你没有:

REGION_CD       varchar(200),               
REGION_CD       varchar (2), 

“foreign”字段可以为空,而父字段不可以,但是其他类型和大小定义必须相同。

原因:由于您的父记录的字段数限制较长,因此您可以使用ab12ab34ab56。如果您的子记录中包含ab,那么123456个变体应该匹配吗?