外键参照列与引用列各有两个
时间: 2024-04-06 19:29:46 浏览: 10
如果一个表中有多个列参照另一个表的多个列,那么就需要在创建外键约束时指定多个参照列和引用列。在 MySQL 中,可以使用以下语法指定多个列:
```
FOREIGN KEY (child_column1, child_column2, ...)
REFERENCES parent_table(parent_column1, parent_column2, ...);
```
这样,就可以将子表中的多个列与父表中的多个列建立关联。
例如,考虑以下两个表:
```
CREATE TABLE Products (
ProductID int NOT NULL,
ProductName varchar(50),
CategoryID int,
PRIMARY KEY (ProductID, CategoryID)
);
CREATE TABLE Orders (
OrderID int NOT NULL PRIMARY KEY,
ProductID int,
CategoryID int,
Quantity int,
FOREIGN KEY (ProductID, CategoryID) REFERENCES Products(ProductID, CategoryID)
);
```
在上面的例子中,Orders 表中的 ProductID 和 CategoryID 列都是参照列,它们参照了 Products 表中的 ProductID 和 CategoryID 列。Products 表中的 ProductID 和 CategoryID 列都是引用列,它们被 Orders 表中的 ProductID 和 CategoryID 列参照。这样,外键约束可以确保 Orders 表中的每个 ProductID 和 CategoryID 值都对应于 Products 表中的一个有效的 ProductID 和 CategoryID。