如何使用复合键作为外键?

时间:2014-03-25 17:35:52

标签: mysql sql foreign-keys composite-key composite-primary-key

我的数据库中有两个表。

这是架构......

CREATE TABLE Receipt (
ReceiptID VARCHAR(50),
ProductNo SMALLINT,
ProductBarcode SMALLINT,
FOREIGN KEY (productNo, productBarcode) REFERENCES Receipt(productNo, productBarcode),
PRIMARY KEY (receiptID)
);

CREATE TABLE Product (
ProductNo SMALLINT,
ProductBarcode SMALLINT,
PRIMARY KEY (productNo, productBarcode)
);

我正在使用MySQL,我需要使用复合键的帮助。

如果有人能帮助我,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

在mysql数据库中创建复合键的语法是

CONSTRAINT constraint_name PRIMARY KEY (col_1,col_2,col_3)

对于你的情况:

- 在创建表时创建约束----

CREATE TABLE Receipt 
(
ReceiptID VARCHAR(50),
ProductNo SMALLINT,
ProductBarcode SMALLINT,

PRIMARY KEY (receiptID),
INDEX (productNo, productBarcode)

FOREIGN KEY (productNo, productBarcode) 
REFERENCES Receipt(productNo, productBarcode)
);

- 为现有表添加约束----
    ALTER TABLE收据     ADD [constraint [constraint_name]]     FOREIGN KEY(productNo,productBarcode)     REFERENCES Receipt(productNo,productBarcode)