使用主键和2个带有错误的外键创建表

时间:2014-08-04 17:17:04

标签: mysql constraints

我正在尝试使用Rep_ID,Store_ID和Quarter创建一个具有复合PK约束的表,我正在尝试在Rep_ID和Store_ID上创建FK约束

这是我的陈述:

CREATE TABLE REP_CONTRACTS( Store_ID INT(8), Name INT(5), Quarter CHAR(3), Rep_ID INT(5), PRIMARY KEY (Rep_ID, Store_ID, Quarter), Rep_ID INT REFERENCES BOOK_STORES(Rep_ID), Store_ID INT REFERENCES BOOK_STORES(Store_ID) );

这些是我的表格:

书店:

Column Name Datatype Constraint Comments Store_ID INT(8) PRIMARY KEY column Name VARCHAR(30) Should be UNIQUE and NOT NULL Contact VARCHAR(20) Rep_ID INT(5)

代表合同

Column Name DataType Store_ID INT(8) Name INT(5) Quarter CHAR(3) Rep_ID INT(5)

我已经创建了书店表,我正在尝试创建rep合约表

运行此查询时,我也收到错误Duplicate column name 'Rep_ID'. Add a differentiating column alias.

1 个答案:

答案 0 :(得分:1)

您在表中声明了两次REPID,这就是您收到重复错误的原因。您可能还想创建列"商店ID"在主键声明中使用它之前。

CREATE TABLE REP_CONTRACTS(
Store_ID INT(8),
Name INT(5),
Quarter CHAR(3),
Rep_ID INT(5) REFERENCES BOOK_STORES(Rep_ID),
Store_ID INT REFERENCES BOOK_STORES(Store_ID),
PRIMARY KEY (Rep_ID, Store_ID, Quarter)
);