首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL工作台: TroubleShooting键

MySQL工作台: TroubleShooting键
EN

Stack Overflow用户
提问于 2018-09-06 09:35:37
回答 1查看 108关注 0票数 1

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

这张桌子的制作花费了相当长的时间(超过30分钟!)所以我决定排除它。我确信问题在于Keys的创建。

我用MySQL WorkBench来做这件事,现在我很难理解这句话:

代码语言:javascript
复制
/!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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-06 09:52:00

代码语言:javascript
复制
/!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禁用外键检查。
代码语言:javascript
复制
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;安全地删除它。
代码语言:javascript
复制
/!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS /;
  • 使用前面使用的变量还原foreign_key_checks的值。同样,只有在版本大于4.0.14的情况下
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52201045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档