如何重命名外键约束 | MySql5.6、InnoDB

How to rename foreign key constraint | MySql 5.6, InnoDB

我需要重命名 fk 约束(删除所有 fk,创建新的),但是 MySql(因为 InnoDB 引擎)为这些约束创建了索引。 我需要手动删除索引吗?或者它会导致问题?请有人描述我这一点。

它不会导致问题。

添加外键应该发现已经有足够的索引而不是添加第二个。即使它增加了一个冗余索引,也没有什么坏处。

我想知道 -- 你为什么关心约束名称是什么?

从 5.6 文档开始:"For ALTER TABLE, unlike CREATE TABLE, ADD FOREIGN KEY ignores index_name if given and uses an automatically generated foreign key name. As a workaround, include the CONSTRAINT clause to specify the foreign key name: ADD CONSTRAINT name FOREIGN KEY (....) .." 和 "Adding and dropping a foreign key in the same ALTER TABLE statement is supported for ALTER TABLE ... ALGORITHM=INPLACE but not for ALTER TABLE ... ALGORITHM=COPY."

我提出这个问题的观点是,如果将对 table 的所有更改放入单个语句中,ALTER 通常 运行得更快。但是 DROP + ADDCOPY 的情况下是不允许的。