MySQL Workbench:TroubleShooting Keys

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL Workbench:TroubleShooting Keys相关的知识,希望对你有一定的参考价值。

我有一个php脚本,它创建一个大的临时mysql表。

创建这个表需要一个荒谬的大时间(超过30分钟!)。所以我决定对其进行故障排除。我确信问题在于Keys的创建。

我使用MySQL WorkBench来做到这一点,现在我很难理解这句话:

/!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 /;
PRIMARY KEY (`CONC_ID`,`d_id_2`),
KEY `vo_marque_id` (`VM_id`),
KEY `CONC_ID` (`CONC_ID`,`d_id_2`)
/!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS /;

这是否意味着我有CONC_ID的重复键?或者我有一个Key指向它的自我?

答案
/!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 /;
  • /!40014表示“仅当MySQL服务器版本至少为4.0.14时才执行此操作
  • SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKSforeign_key_checks的当前值存储在变量old_foreign_key_checks
  • 然后使用FOREIGN_KEY_CHECKS=0禁用外键检查

PRIMARY KEY (`CONC_ID`,`d_id_2`),
KEY `vo_marque_id` (`VM_id`),
KEY `CONC_ID` (`CONC_ID`,`d_id_2`)
  • 索引conc_id是多余的,因为它与主键相同。您可以使用alter table <your_table> drop index conc_id;安全地删除它

/!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS /;
  • 使用之前使用的变量恢复foreign_key_checks的值。仅在版本大于4.0.14时再次

以上是关于MySQL Workbench:TroubleShooting Keys的主要内容,如果未能解决你的问题,请参考以下文章

Mysql Workbench 怎么卸载呀?

使用MySQL Workbench进行数据库设计——MySQL Workbench用法总结

mysql 的默认数据库mysql为啥在 workbench下看不到?怎么办?

MySQL workbench 在哪里创建event?

Mac的mysql和workbench连接问题解决

Mysql Workbench No Object Selected!