昨天在自己做的一个系统中使用mysql,折腾了半天始终无法建立外键,通过查找文档最终将问题解决,原来mysql中默认建立的表所使用的存储引擎为MyISAM类型,在这种类型的table中建立的外键只起到一个注释,提示的作用,对外键约束并无实际作用。要建立真正有意义的外键约束,需要建立类型存储引擎为INNODB类型的表。

如:

create table parent(id int(3),

name varchar(10)

)type=innodb;

create table children( id int(3) ,

name varchar(10) ,

parent_id int(3),

primary key(id),

index(parent_id),   //为外键手工建立索引

foreign key(parent_id) references parent(id) on delete cascade

)type=innodb;

mysql中建立关联关系与oracle有所不同,在oracle中只要为字段建立外键即会自动为该字段建立索引,但是在mysql中必须手工为需要建立外键的字段手工建立索引,否则无法创建成功。

另外,我在建用户表是直接使用user作为表名,虽然该表创建成功,但是在其子表中建立与其关联的外键时无法创建成功,后来发现user为系统的关系字。将user表名改为user_info后,子表创建成功。

如何在mysql 中建立有关联关系的表相关推荐

  1. 如何在MySQL中设置主从复制

    原作者:Etel Sverdlov 转载&翻译:https://www.digitalocean.com/community/tutorials/how-to-set-up-master-sl ...

  2. 如何在mysql中创建过程_如何在MySQL 中创建存储过程?

    问题阐述 自MySQL 5.0 开始,MySQL 就支持存储过程.存储过程是一些被用户定义的SQL 语句集合.一个存储程序是可以被存储在服务器中的一套SQL 语句.存储过程可以被程序.触发器或另一个存 ...

  3. mysql数据库存歌_如何在mysql中存储音乐和图片文件

    标签: 如何在mysql中存储音乐和图片文件? 果你想把二进制的数据,比如说图片文件和HTML文件,直接保存在你的MySQL数据库,那么这篇文章就是为你而写的! 我将告诉你怎样通过HTML表单来储存这 ...

  4. navicat for mysql创建触发器_在navicat for mysql中建立触发器

    Mysql的触发器(trigger):监视某种操作,并触发另一种操作.简要说:对表M的操作A触发了对表N的操作B. 触发器创建语法四要素: 1..引发对象(哪一张表引发的?也就是说表M是谁?) 2.触 ...

  5. mysql data ibdata1_database - 如何在MySQL中收缩/清除ibdata1文件

    database - 如何在MySQL中收缩/清除ibdata1文件 我在localhost中使用MySQL作为在R中执行统计的"查询工具",也就是说,每次运行R脚本时,我创建一个 ...

  6. mysql count 返回0_如何在MySQL中使用COUNT時返回0而不是null

    我正在使用此查詢返回存儲在$ sTable中的歌曲列表以及存儲在$ sTable2中的總項目的COUNT.如何在MySQL中使用COUNT時返回0而不是null /* * SQL queries * ...

  7. 如何在MySQL中声明变量?

    本文翻译自:How to declare a variable in MySQL? How to declare a variable in mysql, so that my second quer ...

  8. 如何在MySQL中为多个列指定唯一约束?

    我有一张桌子: table votes (id,user,email,address,primary key(id), ); 现在,我想使列的用户,电子邮件,地址唯一(在一起). 如何在MySql中执 ...

  9. mysql外键约束脚本_如何在MySQL中设置外键约束

    (1) 外键的使用: 外键的作用,主要有两个: 一个是让数据库自己通过外键来保证数据的完整性和一致性 一个就是能够增加ER图的可读性 有些人认为外键的建立会给开发时操作数据库带来很大的麻烦.因为数据库 ...

最新文章

  1. 谢文睿:西瓜书 + 南瓜书 吃瓜系列 1. 一元线性回归
  2. Linux下服务器端开发流程及相关工具介绍(C++)
  3. CaaS环境下实践经验总结(二):监控系统部署
  4. java匿名启动线程_用java实现匿名内部类启动线程
  5. Realsense的使用
  6. signature=348a7ccbb9abe65fb90d6a0f44514435,Built-in self test for memory interconnect testing
  7. mysql 重启数据库实例_mysql 单机多实例重启数据库服务
  8. java 获取xml 版本号_java解析xml获取对应值
  9. CentOS6.X安装10G需要额外安装的软件包
  10. python跟php服务器对比_python学习笔记一和PHP的一些对比
  11. 创建虚拟文件系统设备文件节点_使用proc_create实例分析
  12. python自带的帮助文档
  13. 递归和非递归分别实现求n的阶乘
  14. 51开发板用ADC采集模拟量
  15. postman变量设置及脚本的使用
  16. 新闻发布及管理系统的设计与实现(论文+PPT+源码)
  17. 相片尺寸怎么修改?手机如何整体缩小图片尺寸?
  18. Gitea在windows平台的安装和简单使用教程
  19. 如何看待多所985高校开设人工智能专业?
  20. 超棒的Mac动画设计软件,提升你的动画制作效果

热门文章

  1. SEO技术是一个很好的方式来分享和做SEO代码。分享一下keysioncms的调用代码。
  2. 零基础怎么建模?超详细建模教程——第一期
  3. 克隆远程仓库#180804
  4. SRI-Subresource Integrity
  5. Linux下c++/c使用getsockopt()的记录
  6. Oracle存储过程取当天为当年的第几周(自然周),以及当年总周数
  7. 无线网络技术——星链——三两问
  8. 华为设备Telnet配置命令及注释
  9. 【数据仓库学习】数据质量监控
  10. case when then else end用法