当前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与InnoDB的区别见:Mysql 中 MyISAM 和 InnoDB 的区别有哪些? - 知乎 (zhihu.com))使用了: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 ;

最新文章

  1. mysql临时禁用触发器
  2. thinkphp的钩子的两种配置和两种调用方法
  3. Windows平台配置免安装的MySQL
  4. [ html canvas putImageData ] canvas绘图属性 putImageData 属性讲解
  5. Selenium2学习-025-WebUI自动化实战实例-023-页面快照截图应用之一 -- 常规截图(全页面)
  6. 黑马程序员_Java集合Map
  7. 使用mysql_query()方法操纵数据库以及综合实例
  8. 关于Visio Studio 2012使用Nuget获取Sqlite驱动包报错:“System.Data.SQLite.EF6”的架构版本与 NuGet 的版本 2.0.30625.9003 不兼容
  9. nyoj VF
  10. Java虚拟机内存溢出异常--《深入理解Java虚拟机》学习笔记及个人理解(三)
  11. js将时间戳转换为日期类型
  12. JAVA课程课后作业03之动手动脑
  13. Linux和windows 查看程序、进程的依赖库的方法
  14. C#窗体模拟键盘按键(组合键)产生事件 ---- 通过keybd_event()函数
  15. Spring配置,事务使用
  16. $.ajax dataType设置为json 回调函数不执行
  17. 【刷题】BZOJ 2820 YY的GCD
  18. JavaWeb学习总结(四):Servlet开发(二)
  19. NO--10今天带大家回忆回忆“闭包”吧!
  20. Js常用插件介绍

热门文章

  1. SQL语句总结---数据库操作
  2. CSS简单样式练习(二)
  3. Mxnet速查_CPU和GPU的mnist预测训练_模型导出_模型导入再预测_导出onnx并预测
  4. numpy教程05---ndarray的高级操作
  5. LC-242
  6. 轻量化安装 TKEStack:让已有 K8s 集群拥有企业级容器云平台的能力
  7. .NET 6 史上最全攻略
  8. 中文版Postman
  9. Unity制作一个小星球
  10. Windows10 office 点击链接提示您的组策略阻止我们为您完成此操作。设置ChromeHTML也无效.