首页 > 解决方案 > 哪个更好,删除和重新创建 FK 约束或禁用和启用 FK 检查?

问题描述

我在 MYSQL 数据库的各种表中的列很少,分配的长度比实际需要的要长。因此,现在我尝试使它们具有适当的长度。它们是 VARCHAR(64),我想让它们成为 CHAR(36)。这些列涉及外键。这些更改将是一个新的 SQL 文件,它与 Flyway Engine 一起运行。这两个选项哪个更好?

1)删除约束并修改列并重新创建约束。

2)执行set foreign_key_checks=0,改变列和执行set foreign_key_checks=1

标签: mysqldatabaseforeign-keysflywaydisable

解决方案


由于您要更改长度,因此最好禁用foreign_key_checks。因为它只会影响您当前的会话(除非您提到全局)。这样它就不会影响依赖于外键的其他会话。


推荐阅读