如何重命名外键约束| mysql 5.6,innodb

0yg35tkg  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(436)

我需要重命名fk约束(删除所有fk,创建新的),但是mysql(cuz innodb引擎)为这些约束创建了索引。我需要手动删除索引吗?否则会导致问题?请,有人给我描述一下这一点。

cnwbcb6i

cnwbcb6i1#

它不会导致问题。
添加fk应该会发现已经有足够的索引,而不是添加第二个索引。即使它添加了一个冗余索引,也不会造成什么危害。
我想知道——你为什么关心约束名是什么?
来自5.6文档:“对于ALTERTABLE,与CREATETABLE不同,add外键忽略索引名称(如果给定),并使用自动生成的外键名称。作为一种解决方法,包括constraint子句以指定外键名称: ADD CONSTRAINT name FOREIGN KEY (....) .. “和”alter table支持在同一alter table语句中添加和删除外键。。。算法=就地但不用于alter table。。。算法=复制。“
我要说的是 ALTER 如果将表的所有更改都放到一条语句中,通常运行得更快。但是 DROP + ADD 是不允许的 COPY 案例。

相关问题