我无法创建一个简单的表

时间:2014-08-25 14:59:56

标签: sql ms-access-2007 create-table

我尝试编写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错误

3 个答案:

答案 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的响应单独添加约束。

您的原始代码会尝试合并两种方法,这些方法会引发您描述的错误。