gpt4 book ai didi

mysql - 重命名所有 FK 和 IDX 名称

转载 作者:行者123 更新时间:2023-11-29 23:16:13 32 4
gpt4 key购买 nike

我正在 MySql Workbench 上工作,每次重命名表/列时,现有的 FK 和 IDX 名称都不会更改。我最终得到了一个所有 FK/IDX 名称都困惑的模型。有没有办法根据新的表和列名称重新生成所有名称,还是必须一一更改它们?

最佳答案

直接在模型上,我没有发现任何 FK 等的再生。解决方法如下,但您必须首先对模型进行正向工程才能获得架构:

使用并自定义以下语句:

SELECT TABLE_NAME, INDEX_NAME, COLUMN_NAME,
CONCAT('ALTER TABLE `your_schema`.`',TABLE_NAME,'` DROP INDEX `',INDEX_NAME,'`, ADD INDEX `fk_',TABLE_NAME,'_',COLUMN_NAME,'_idx` (`',COLUMN_NAME,'` ASC);') as statement
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'your_schema';

自定义上面的 WHERE 以排除例如PRIMARY 索引或其他任何内容。您还可以在 CONCAT 表达式中设置适合您的索引名称的前缀和后缀。

上述 SELECT 中的前 3 列将用于创建第四个表达式。您可以使用第四个表达式的结果来批量创建所需的语句。

这似乎不是最快的解决方案,但是,一旦您将最终语句添加到代码片段中,下次将可以快速轻松地重新生成架构索引。

关于mysql - 重命名所有 FK 和 IDX 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27780076/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com