mysql建表时两个外键怎么建
时间: 2024-11-20 15:35:47 浏览: 70
在MySQL中,当你需要在一个表(称为子表)关联到另一个表(称为主表)并限制数据一致性时,可以使用外键(Foreign Key)。如果涉及到两个表之间的关联,并且每个表都有一个外键指向对方,你需要创建两个外键约束,分别在两个表上。
假设你有两个表,一个是`orders`表,一个是`customers`表:
```sql
CREATE TABLE customers (
id INT PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT,
product VARCHAR(50),
FOREIGN KEY (customer_id) REFERENCES customers(id) ON DELETE CASCADE
);
```
在这个例子中,`orders`表的`customer_id`字段是一个外键,它引用了`customers`表的`id`字段。`ON DELETE CASCADE`表示当`customers`表中的记录删除时,`orders`表中对应的记录也将自动删除,以维护数据的一致性。
对于第二个表`products`,如果你也需要与`orders`表关联,你可以这样做:
```sql
CREATE TABLE products (
product_id INT PRIMARY KEY,
product_name VARCHAR(50),
order_id INT,
FOREIGN KEY (order_id) REFERENCES orders(order_id) ON DELETE RESTRICT
);
```
这里,`products`表的`order_id`字段也是一个外键,参照`orders`表的`order_id`字段。`ON DELETE RESTRICT`表示若`orders`表的记录删除,`products`表将不允许删除该订单下的所有产品。
阅读全文