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外键创建不成功/失效内容请搜索PHP之友以前的文章或继续浏览下面的相关文章希望大家以后多多支持PHP之友!
您可能感兴趣的文章:- MySQL 创建主键,外键和复合主键的语句
- mysql外键(Foreign Key)介绍和创建外键的方法
- MySQL外键创建失败1005原因汇总
- MYSQL建立外键失败几种情况记录Can''t create table不能创建表
- MySQL创建数据表并建立主外键关系详解
- MySQL无法创建外键的原因及解决方法
- 解析MySQL创建外键关联错误 - errno:150
- 解析在MySQL里创建外键时ERROR 1005的解决办法
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。