复合外键的sql语句
时间: 2024-06-21 20:01:05 浏览: 267
SQL语句:给表添加外键的四种方式
复合外键(Composite Foreign Key)是在数据库中用于关联两个或更多表的关键字段的组合。它确保了引用完整性,即子表中的数据必须存在于主表的某个特定组合中。在SQL中,创建复合外键通常涉及到ALTER TABLE语句。
以下是一个创建复合外键的基本示例,假设我们有两个表:`Orders` 和 `OrderDetails`,`Orders` 表有一个主键 `order_id`,而 `OrderDetails` 表需要关联到 `Orders` 表的多个字段(`order_id` 和 `product_id`):
```sql
CREATE TABLE Orders (
order_id INT PRIMARY KEY,
-- 其他订单字段...
);
CREATE TABLE OrderDetails (
order_detail_id INT AUTO_INCREMENT,
product_id INT,
quantity INT,
order_id INT,
FOREIGN KEY (order_id, product_id) REFERENCES Orders(order_id, product_id)
-- 这里定义复合外键
ON DELETE CASCADE -- 如果删除主表的记录,子表记录也将被删除
ON UPDATE CASCADE -- 如果更新主表的记录,子表记录也会相应更新
);
```
在这个例子中,`FOREIGN KEY` 子句指定了复合外键,`REFERENCES` 关键字后面跟着父表和它们的关联字段,`ON DELETE` 和 `ON UPDATE` 则定义了当主表记录发生变化时,子表如何处理外键约束。
阅读全文