mysql外键创建不成功/失效如何处理
当前mysql版本:SELECT VERSION();
结果为:5.5.40。
在复习mysql外键约束时创建表格:stu与grade,目标:grade的id随着student的id级联更新,且限制删除。
创建student表格:
CREATE TABLE student ( id INT ( 8 ), NAME VARCHAR ( 20 ), department VARCHAR ( 20 ), INDEX ( id )) ENGINE = INNODB;
创建grade表格:
CREATE TABLE grade ( id INT PRIMARY KEY auto_increment, score INT NOT NULL, stu_id INT, index( id ), CONSTRAINT yueshu1 FOREIGN KEY ( id ) REFERENCES student ( id ) ON DELETE RESTRICT ON UPDATE CASCADE )ENGINE = INNODB ;
原以为已经成功,且发现外键仿佛没有添加成功,即grade表的id字段不会随着student表的id字段更新,且没有删除的限制。
经过排查发现是表的引擎不对(MyISAM不支持外键,InnoDB支持)使用了:MyISAM
使用语句为:
SHOW TABLE STATUS FROM fuxi WHERE NAME LIKE 'grade';
因此将创建grade表的语句指定engine=INNODB即可:
CREATE TABLE grade ( id INT PRIMARY KEY auto_increment, score INT NOT NULL, stu_id INT, index( id ), CONSTRAINT yueshu1 FOREIGN KEY ( id ) REFERENCES student ( id ) ON DELETE RESTRICT ON UPDATE CASCADE )ENGINE = INNODB ;
到此这篇关于mysql外键创建不成功/失效如何处理的文章就介绍到这了,更多相关mysql外键创建不成功/失效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)
这篇文章给大家介绍关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)的相关资料,还给大家收集些关于MySQL会出现中文乱码原因常见的几点,小伙伴快来看看吧2015-11-11Table ‘xxx’ is marked as crashed and should be repaired 错误解决
这些东西都是从其他地方找来的一些解决MYSQL数据库这个错误的方法,并不一定适用于神迹数据库,仅仅供参考一下,具体的解决方法还是需要摸索。2009-04-04INSERT INTO .. ON DUPLICATE KEY更新多行记录
本文详细的介绍了关于INSERT INTO .. ON DUPLICATE KEY更新多行记录,有需要了解的同学可参考一下2013-08-08
最新评论