mysql - 删除并重新创建 FK 约束或禁用并启用 FK 检查哪个更好?

标签 mysql database foreign-keys flyway disable

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

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

2) 执行setforeign_key_checks=0,更改列并执行setforeign_key_checks=1

最佳答案

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

关于mysql - 删除并重新创建 FK 约束或禁用并启用 FK 检查哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57054826/

相关文章:

mysql - 未实现外键约束

php - 使用触发器来防止在 MySQL 中插入代码

javascript - 将 mysql json 推送到数组中

php - mysqli_insert_id 是否有可能在高流量应用程序中返回错误的 id?

mysql - 如何优化连接 3 个表的 SQL 查询

sql-server - 以兼容级别 80 运行 SQL Server 2005 数据库是否会对性能产生负面影响?

php - 当使用 PHP 查询我的 MySQL 数据库时,如何解决这个 undefined index 错误?

MySQL 插入脚本

mysql - 外键为空

mysql - MySQL 中一个字段有两个引用