mysql外键约束怎么弄-mysql教程
如何创建 MySQL 外键约束
在 MySQL 中创建外键约束可确保数据完整性,并阻止对父表不一致的更改。以下步骤说明如何创建外键约束:
步骤 1:确定父表和子表
确定要建立外键关系的父表和子表。外键列将存在于子表中,并引用父表中的主键列。
步骤 2:创建父表约束
在父表中创建主键约束以唯一标识每行。例如:
ALTER TABLE parent_table ADD PRIMARY KEY (id);
登录后复制
步骤 3:在子表中创建外键约束
使用 FOREIGN KEY 子句在子表中创建外键约束,引用父表的特定列。例如:
ALTER TABLE child_table ADD FOREIGN KEY (parent_id) REFERENCES parent_table(id);
登录后复制
约束选项
还可以配置以下约束选项:
- ON UPDATE CASCADE:当父表的相关记录发生更改时,将自动更新子表中引用的记录。
- ON DELETE CASCADE:当父表的相关记录被删除时,将自动删除子表中引用的记录。
- ON UPDATE RESTRICT/SET NULL/SET DEFAULT:根据指定的操作(限制、设置为空或设置默认值)来处理对父表中相关记录的更新。
- ON DELETE RESTRICT/SET NULL/SET DEFAULT:根据指定的操作(限制、设置为空或设置默认值)来处理对父表中相关记录的删除。
示例
以下示例创建一个父表 customers 和一个子表 orders,其中 customer_id 列是子表中的外键,引用 customers 表中的 id 列:
CREATE TABLE customers ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL, PRIMARY KEY (id) ); CREATE TABLE orders ( id INT NOT NULL AUTO_INCREMENT, customer_id INT NOT NULL, product_id INT NOT NULL, FOREIGN KEY (customer_id) REFERENCES customers(id) );
登录后复制
通过创建外键约束,可以确保 orders 表中的记录与 customers 表中的有效记录相关联。这将有助于防止数据不一致,并维护数据库的完整性。