在 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 是作为外键引用的主键列。
示例
假设我们有两个表:
- 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;
以上就是mysql如何添加外键的详细内容,更多请关注CTO智库其它相关文章!