欢迎投稿

今日深度:

mysql外键创建不成功/失效如何处理,

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的解决办法

www.htsjk.Com true http://www.htsjk.com/Mysql/48665.html NewsArticle mysql外键创建不成功/失效如何处理, 当前mysql版本: SELECT VERSION(); 结果为:5.5.40。 在复习mysql外键约束时创建表格:stu与grade,目标:grade的id随着student的id级联更新,且限制删除。 创...
评论暂时关闭