MySQL Workbench:TroubleShooting Keys
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL Workbench:TroubleShooting Keys相关的知识,希望对你有一定的参考价值。
创建这个表需要一个荒谬的大时间(超过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_CHECKS
将foreign_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用法总结