我尝试编写SQL代码来创建名为“EMP_1”的表。此表是EMPLOYEE表的子集,表的结构总结如下。 这是信息:
Attribute Name Data Type Remarks
EMP_NUM CHAR(3) PK
EMP_LNAME VARCHAR(15) Not Null
EMP_FNAME VARCHAR(15) Not Null
EMP_INITIAL CHAR(1)
EMP_HIREDATE DATE
JOB_CODE CHAR(3) FK (from JOB table)
我的代码:
CREATE TABLE EMP_1
(
EMP_NUM CHAR(3) PRIMARY KEY,
EMP_LNAME VARCHAR(15) Not Null,
EMP_FNAME VARCHAR(15) Not Null,
EMP_INITIAL CHAR(1) ,
EMP_HIREDATE DATETIME,
JOB_CODE CHAR(3) FOREIGN KEY (JOB_CODE) REFERENCES JOB(JOB_CODE)
);
我一直收到CONSTRAINT错误
答案 0 :(得分:0)
确保您的PRIMARY KEY和FOREIGN KEY具有相同的DATA TYPE。
答案 1 :(得分:0)
我认为你可能在约束之前错过了一个逗号。这在我尝试时起作用了:
CREATE TABLE EMP_1
(
EMP_NUM CHAR(3) PRIMARY KEY,
EMP_LNAME VARCHAR(15) Not Null,
EMP_FNAME VARCHAR(15) Not Null,
EMP_INITIAL CHAR(1),
EMP_HIREDATE DATETIME,
JOB_CODE CHAR(3),
CONSTRAINT FK_JOBS FOREIGN KEY (JOB_CODE) REFERENCES JOB(JOB_CODE)
);
答案 2 :(得分:0)
我有一段时间没有看过FK,但我的回忆是你可以使用它:
JOB_CODE CHAR(3)FOREIGN KEY REFERENCES JOB(JOB_CODE) 这将创建一个名为JOB_CODE的FK,
OR: 拆分该行,以便您创建字段并根据JPW的响应单独添加约束。
您的原始代码会尝试合并两种方法,这些方法会引发您描述的错误。