MySQL 外键(Foreign key)是一种用于建立表之间关联性的数据结构,它定义了一个或多个列与另外一张表中的一个或多个列之间的关系。外键可以帮助保持表之间的完整性和一致性,确保在删除或修改父表记录时不会破坏子表的引用关系。
创建一个外键需要满足以下条件:
- 主表和从表必须有一个公共字段。
- 公共字段在主表中必须是主键。
- 公共字段在从表中必须是唯一索引。
- 主表中的公共字段必须具有 NOT NULL 属性。
在 MySQL 中,使用 FOREIGN KEY 关键字来创建外键,语法如下:
CREATE TABLE 表名 (
字段名 数据类型,
...
FOREIGN KEY (字段名) REFERENCES 另一个表名(字段名)
);
例如,以下 SQL 语句将为 orders 表创建一个外键,将其 order_id 列与 customers 表中的 customer_id 列相关联:
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT,
order_date DATE,
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
以上 SQL 语句将在 customers 表中创建一个名为 customer_id 的主键,并将其与 orders 表中的 customer_id 列相关联。此外,如果尝试删除 customers 表中与 orders 表中存在关联的记录,则会得到一个错误提示。