在 MySQL 中添加外键可确保数据完整性,通过将一个表中的列与另一个表中的主键关联实现。在表中添加外键的语法为:ALTER TABLE table_name ADD FOREIGN KEY (column_name) REFERENCES referenced_table_name (referenced_column_name)。在插入新记录时,外键列的值必须等于已存在行的主键值。外键约束包括 ON DELETE 和 ON UPDATE,可指定外键引用的行被删除或更新时采取的操作。
MySQL 中添加外键
MyS
QL 中添加外键可以确保数据完整性和一致性。外键通过将一个表中的列与另一个表中的主键关联来实现。
如何添加外键
使用以下语法在 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是作为外键引用的主键列。
示例
假设我们有两个表:
-
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;








