失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > mysql修改索引时 外键约束造成的奇怪问题【MySQL】

mysql修改索引时 外键约束造成的奇怪问题【MySQL】

时间:2021-06-02 23:51:13

相关推荐

mysql修改索引时 外键约束造成的奇怪问题【MySQL】

数据库|mysql教程

Windows,mysql

数据库-mysql教程

Mysql外键

busybox 源码库,vscode搭建lua,ubuntu lirc,Tomcat如何挂载,odb-sqlite 编译,jsp验证码插件下载,前端框架兼容IE9,数据库爬虫英文缩写,php判断验证码,怎么制作seo方案,用jsp做的网站代码,微信二维码网页规律,操作成功页面模板lzw

文章站手机版网站程序源码,ubuntu安装字体后,Python编购物爬虫,php一键安装制作最新正式版,衢州seo价格lzw

mysql修改索引时,外键约束造成的奇怪问题

php源码怎么传到空间,vscode怎样返回路径,ubuntu驱动目录,启动tomcat权限不足,河北爬虫市场,php简单学生管理系统,值得信赖的seo优化公司,外贸英文网站 源代码,邮件 html 模板lzw

事情是这样的,在Windows的mysql5.5 ,我想修改一个表的索引,于是执行

[sql]

ALTER TABLE practice_log DROP INDEX ix_practice_log_userid;

ALTER TABLE practice_log ADD INDEX ix_practice_log_userid(userid,practicetime);

但是报错:unable drop index 。。。: needed in a foreign key constraint

于是,强行把外键约束检查关闭:

[sql]

SET FOREIGN_KEY_CHECKS=0;

ALTER TABLE practice_log DROP INDEX ix_practice_log_userid;

ALTER TABLE practice_log ADD INDEX ix_practice_log_userid(userid,practicetime)

SET FOREIGN_KEY_CHECKS=1;

索引修改成功。

但是,问题来了。。。。。

重启数据库后,表 practice_log 不见了!

删除表practice_log,报错:表不存在;

建表,报错:表已存在!

这应该是mysql的bug。

解决办法:不要用SET FOREIGN_KEY_CHECKS=0;老老实实得删掉外键约束吧,再修改索引,搞定。

另外,约束影响性能,尽量不要用。

如果觉得《mysql修改索引时 外键约束造成的奇怪问题【MySQL】》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。