mysql 定义外键
时间: 2024-12-20 11:07:20 浏览: 4
如何在MySQL数据库中定义外键
在MySQL中,定义外键是为了确保表之间的数据一致性,通常用于关联两个表。基本语法如下:
```sql
CONSTRAINT [constraint_name]
FOREIGN KEY (local_column(s))
REFERENCES referenced_table (referenced_column(s))
ON DELETE [ACTION]
ON UPDATE [ACTION]
```
这里的`local_column(s)`是你本地表(子表)的列名,`referenced_table`是父表的名字,`referenced_column(s)`是父表中对应的列。`ACTION`可以是`CASCADE`(级联删除/更新),`RESTRICT`(阻止操作),`NO ACTION`(默认行为,不做任何操作),或是`SET NULL`(设置空值)。
例如,如果你有一个订单表(`orders`)和一个客户表(`customers`),你想确保每个订单都有有效的客户ID,你可以这样定义外键:
```sql
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT,
...
FOREIGN KEY (customer_id)
REFERENCES customers(customer_id)
ON DELETE CASCADE
ON UPDATE CASCADE
);
```
这表示如果客户表中的记录被删除,订单表中的相应记录也会被删除(`CASCADE`选项)。同样,若客户ID被更新,订单表中的`customer_id`也会跟着更新。
阅读全文