如何重命名外键约束MySQL 5.6,InnoDB

时间:2018-07-25 20:09:37

标签: mysql constraints innodb database-indexes

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

1 个答案:

答案 0 :(得分:0)

这不会导致问题。

添加FK 应该发现已经有足够的索引,而不添加第二个。即使添加了冗余索引,危害也很小。

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

从5.6文档开始:“对于ALTER TABLE,与CREATE TABLE不同,ADD FOREIGN KEY会忽略index_name(如果给定的话),并使用自动生成的外键名称。作为解决方法,请包含CONSTRAINT子句以指定外键名称:{{1 }}”和“对ALTER TABLE ... ALGORITHM = INPLACE支持在同一ALTER TABLE语句中添加和删除外键,但不支持ALTER TABLE ... ALGORITHM = COPY。”

我提出这一点的目的是,如果将对表的所有更改都放入单个语句中,ADD CONSTRAINT name FOREIGN KEY (....) .. 通常的运行速度会更快。但是在ALTER情况下,不允许DROP + ADD