mysql写表外键约束
时间: 2024-06-05 12:05:39 浏览: 223
MySQL中的表外键约束(Foreign Key)是数据库管理系统中用于确保数据完整性和一致性的一种机制。它确保引用列(通常在子表或称为依赖表)中的值必须存在于主键列(在主表或称为被引用表)中。这样做的目的是防止数据不一致,例如,如果试图在子表中插入不存在于主表的主键值。
下面是使用表外键约束的基本步骤和设置:
1. **创建主表(Parent Table)**:首先创建包含主键的主表,这是其他表会引用的。
```sql
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY,
Name VARCHAR(50)
);
```
2. **创建依赖表(Child Table)**:在依赖表中添加一个或多个字段作为外键,以及一个FOREIGN KEY约束。
```sql
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
CustomerID INT,
OrderDate DATE,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
```
在上面的例子中,`Orders.CustomerID`字段是一个外键,它引用了`Customers.CustomerID`,这意味着每个订单必须关联到存在的客户。
3. **设置行为**:可以指定当主表的记录被删除或更新时,如何处理依赖表中的外键。行为有几种选项,如CASCADE(级联删除)、SET NULL(设置为NULL)等。
```sql
ALTER TABLE Orders
ADD CONSTRAINT fk_orders_customers
FOREIGN KEY (CustomerID)
REFERENCES Customers(CustomerID)
ON DELETE CASCADE; -- 级联删除
```
阅读全文