InnoDB表中中Foreign Key定义

1. InnoDB允许a foreign key引用一个索引列或者索引组列。

2. InnoDB现在并不支持用户定义的分区表有foreign keys,这意味着不包含用户定义的分区表InnoDB可以包含foreign key引用,或者被foreign keys引用的列。

3. InnoDB允许a foreign key constraint引用一个non-unique的key,这是对标准SQL的扩展

Foreign Key引用行为

1. SET DEFAULT在mysql中是被允许的,但是对于InnoDB表却是无效的。在CREATE TABLE和

ALTER TABLE语句中,使用SET DEFAULT对于InnoDB表来说,是不允许的。

2. 如果你在parent表中有一些行,他们有相同的referenced key值,InnoDB做foreign key检测,好像伴有相同referenced key值的其它行都不存在。例如,如果你定义RESTRICT类型,在child表有一个行,它关联parent表中的多行,InnoDB不允许删除在parent表中的这些行的任何一行。

3. InnoDB做级联操作,是通过深度优先算法。是基于跟foreign key constraints对应的索引的记录。

4. 在自关联中,你不能使用ON UPDATE CASCADE或者ON UPDATE SET NULL操作,这主要是为了防止无限的循环更新。换句话说,在自关联中,ON DELETE SET NULL是可以的。

5. MySQL does not support deferred constraints

Foreign Key使用和错误信息

1. 你可以获取foreign keys信息和使用情况通过查询INFORMATION_SCHEMA.KEY_COLUMN_USAGE表,

为了获取更多关于InnoDB表的信息,可以查询INNODB_SYS_FOREIGN和INNODB_SYS_FOREIGN_COLS表。

2.SHOW ERRORS命令包含InnoDB表的foreign key的错误信息,你也可以获取更多的信息通过

SHOW ENGINE INNODB STATUS

InnoDB和Foreign KEY Constraints的更多相关文章

  1. admin添加用户时报错:(1452, 'Cannot add or update a child row: a foreign key constraint fails (`mxonline`.`django_admin_l

    在stackoverflow找到答案: DATABASES = { 'default': { ... 'OPTIONS': { "init_command": "SET ...

  2. MySQL Foreign Key

    ntroduction to MySQL foreign key A foreign key is a field in a table that matches another field of a ...

  3. Foreign key (referential) constraints on DB2 LUW v105

    oreign key constraints (also known as referential constraints or referential integrity constraints) ...

  4. MySQL主从复制中断,报“Error on master: message (format)='Cannot delete or update a parent row: a foreign key constraint fails' error code=1217” 错误

    前几天,发现从库挂了,具体报错信息如下: 分析思路 1. 因为我采用的是选择性复制,只针对以下几个库进行复制: card,upay,deal,monitor,collect.所以,不太可能出现对于sa ...

  5. 【MySQL】Create table 以及 foreign key 删表顺序考究。

    1.以下是直接从数据库导出的建表语句. 1 -- ---------------------------- 2 -- Table structure for files 3 -- ---------- ...

  6. MYSQL外键(Foreign Key)的使用

    在MySQL 3.23.44版本后,InnoDB引擎类型的表支持了外键约束.外键的使用条件:1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持): ...

  7. MySQL—FOREIGN KEY

    作用:保持数据一致性,完整性.实现一对一或一对多关系.(学习的过程中,老师说,实际的生产中,一般不使用物理上的外键约束的,都是使用逻辑上的外键约束) 要求: 父表与子表的存储引擎必须相等,而且只能是I ...

  8. 【转】 #1451 - Cannot delete or update a parent row: a foreign key constraint fails 问题的解决办法

    转载地址:http://blog.csdn.net/donglynn/article/details/17056099 错误 SQL 查询: DELETE FROM `zmax_lang` WHERE ...

  9. 由于外键的存在引发的一个mysql问题 Cannot change column 'id': used in a foreign key constraint

    Duplicate entry ' for key 'PRIMARY' 一查,发现表没有设置自增长. 尝试增加修改表,添加自增长. ALTER TABLE sh_incentive_item MODI ...

随机推荐

  1. 如何在我自己的web 项目的jsp页面中添加链接,直接让别人通过内网在我的电脑上下载文件

    今天接到一个任务,将昨天年会的视频,音频,图片等放在公司自己的服务器上,使连接同一个路由器的(即同一个内网)的同事可以通过内网下载视频(通过内网下载,可以提高下载速度). 备注:本次用的是tomcat ...

  2. Xcode各版本官方下载

    官方下载, 用开发者账户登录,建议用Safari浏览器下载. 官方下载地址: https://developer.apple.com/xcode/downloads/ Xcode 66.4: http ...

  3. 用74HC165读8个按键状态(转)

    源:用74HC165读8个按键状态 //-------------------------------------------------------------------------- //来源: ...

  4. onethink部署时后台登陆的问题

    情况:本地开发后,上传到服务器时,无法登陆后台. 原因:用户的读取数据库的配置与应用的配置 分别在2个地方.而一般我们只记得修改一处配置. 解决:找到application/user/conf/con ...

  5. UVa 11495 - Bubbles and Buckets

    题目大意:给一个有n个数的序列,通过交换相邻的逆序数使这个序列最终有序,求需要交换的次数. 本来可以用冒泡排序解决,但是n达到105,用冒泡排序会超时,用O(nlogn)的归并排序可以达到要求.< ...

  6. 中英文混合字符串截取java

    //截取字符串长度(中文2个字节,半个中文显示一个) public String subTextString(String str,int len){ if(str.length()<len/2 ...

  7. poi jar包介绍

    来自官网: Component Application type Maven artifactId Notes POIFS OLE2 Filesystem poi Required to work w ...

  8. add jars和add external jars有什么区别

    原文add jars和add external jars有什么区别?   add jars和add external jars有什么区别?   add external jars  = 增加工程外部的 ...

  9. 直播流怎么存储在Ceph对象存储上? Linux内存文件系统tmpfs(/dev/shm) 的应用

    一./dev/shm理论 默认的Linux发行版中的内核配置都会开启tmpfs,映射到了/dev/下的shm目录.可以通过df 命令查看结果./dev/shm/是linux下一个非常有用的目录,因为这 ...

  10. js动态设置输入框字体/颜色

    动态设置文本框颜色: 主要是利用javascript中的触发事件onfocus和onblur <script language="javascript" type=" ...