mysql - 哪个更好,删除和重新创建 FK 约束或禁用和启用 FK 检查?
问题描述
我在 MYSQL 数据库的各种表中的列很少,分配的长度比实际需要的要长。因此,现在我尝试使它们具有适当的长度。它们是 VARCHAR(64),我想让它们成为 CHAR(36)。这些列涉及外键。这些更改将是一个新的 SQL 文件,它与 Flyway Engine 一起运行。这两个选项哪个更好?
1)删除约束并修改列并重新创建约束。
2)执行set foreign_key_checks=0
,改变列和执行set foreign_key_checks=1
。
解决方案
由于您要更改长度,因此最好禁用foreign_key_checks。因为它只会影响您当前的会话(除非您提到全局)。这样它就不会影响依赖于外键的其他会话。
推荐阅读
- kotlin - Kapt:如何阅读注释(及其参数)
- html - 为什么 XPathleading-sibling::*[3] 有效,而leading-sibling::div[3] 无效?
- mongodb - Express Router .delete 返回 404 Not Found?
- sql - 如何在 Amazon Redshift 中正确使用横向列别名引用?
- java - 在调用 @PreUpdate 之前 JPA 刷新到数据库
- html - 表格作为列表项 - 项目符号的位置
- node.js - $or 不适用于子文档级别的搜索
- php - 检查一个类是否在 PHP 中扩展了不同的类
- javascript - 通过类在元素之前添加属性作为标识符
- hyperledger-fabric - 为链码构造描述符失败