在 MySQL 中添加外键可确保数据完整性,通过将一个表中的列与另一个表中的主键关联实现。在表中添加外键的语法为:ALTER TABLE table_name ADD FOREIGN KEY (column_name) REFERENCES referenced_table_name (referenced_column_name)。在插入新记录时,外键列的值必须等于已存在行的主键值。外键约束包括 ON DELETE 和 ON UPDATE,可指定外键引用的行被删除或更新时采取的操作。

MySQL 中添加外键
MySQL 中添加外键可以确保数据完整性和一致性。外键通过将一个表中的列与另一个表中的主键关联来实现。
如何添加外键
使用以下语法在 MySQL 中添加外键:
ALTER TABLE table_name ADD FOREIGN KEY (column_name) REFERENCES referenced_table_name (referenced_column_name);
其中:
-
table_name是要添加外键的表。 -
column_name是要作为外键的列。 -
referenced_table_name是包含外键列所引用的主键的表。 -
referenced_column_name是作为外键引用的主键列。
示例
假设我们有两个表:
传媒企业网站系统使用热腾CMS(RTCMS),根据网站板块定制的栏目,如果修改栏目,需要修改模板相应的标签。站点内容均可在后台网站基本设置中添加。全站可生成HTML,安装默认动态浏览。并可以独立设置SEO标题、关键字、描述信息。源码包中带有少量测试数据,安装时可选择演示安装或全新安装。如果全新安装,后台内容充实后,首页才能完全显示出来。(全新安装后可以删除演示数据用到的图片,目录在https://
-
orders:包含订单信息,它具有字段order_id作为主键。 -
products:包含产品信息,它具有字段product_id作为主键。
要在外键 order_id 和 products 表的主键 product_id 之间建立关联,可以使用以下查询:
ALTER TABLE orders ADD FOREIGN KEY (order_id) REFERENCES products (product_id);
现在,当向 orders 表中插入新记录时,order_id 列的值必须等于 products 表中现有行的 product_id 值。
外键约束
添加外键时,可以指定以下约束:
-
ON DELETE:指定当引用的行在referenced_table_name表中被删除时应采取的操作。选项包括RESTRICT、CASCADE和SET NULL。 -
ON UPDATE:指定当引用的行在referenced_table_name表中被更新时应采取的操作。选项包括RESTRICT、CASCADE和SET NULL。
例如,要指定在删除 products 表中的行时级联删除 orders 表中的引用行,可以使用以下语法:
ALTER TABLE orders ADD FOREIGN KEY (order_id) REFERENCES products (product_id) ON DELETE CASCADE;









