我的数据库中有两个表。

这是架构...

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,并且在使用复合键时需要一些帮助。

如果有人可以在这里帮助我,我将不胜感激。

最佳答案

在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收据
    添加[constraint [constraint_name]]
    外键(productNo,productBarcode)
    参考收据(产品编号,产品条形码)

关于mysql - 如何使用组合键作为外键?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22642213/

10-10 15:24