mysql怎么加外键约束

要确定主外键字段,请添加 FOREIGN KEYS 子表和主表的主键,如下所示: ALTER TABLE SUBTABLE ADD FOREIGN KEY(外来字段)REFERENCES 到主表(主键字段)。
这就是坑。
他们不相信自动删除级联。
实际操作需要仔细设置。

MySQL安装后如何设置外键_MySQL外键约束配置方法

我记得一个周末坐在电脑前试图向遗留项目添加外键约束。
该项目已经进行了一段时间,数据量很大。
我打开MySQL命令行界面,开始编写AL​​TER TABLE语句,试图将employee表链接到department表。

我输入了命令,然后我突然想到,我必须先确认父表的主键是否正确。
我查了department表,发现主键是dept_id,类型是INT。
然后我回到员工表,看到 dept_id 也定义为 INT。
看起来数据类型是正确的。

然后我通过指定 ON DELETE RESTRICT 和 ON UPDATE CASCADE 添加了外键约束。
这看起来很合理,因为我不希望删除部门时影响员工的信息,并且如果部门的主键更新,员工的部门信息也应该自动更新。

运行 ALTER TABLE 命令后,我收到错误消息:“无法添加外键约束。
”我有点困惑,因为根据文档,必须满足这些条件。
我检查了存储引擎,确认是InnoDB。
然后检查索引,发现department表上有主键索引。

我突然想到这可能是由于重复的约束名称造成的。
我检查并发现具有该名称的约束实际上已经存在。
我更改了约束名称并再次尝试,这次成功了。

这个过程让我意识到,虽然外键约束是数据库设计中维护数据完整性的重要手段,但在配置它们时也必须小心,以避免一些常见的陷阱。