MySQL外键约束
来源:互联网 发布:华尔街英语 知乎 编辑:程序博客网 时间:2024/05/22 04:40
InnoDB类型表有一个其他存储引擎不支持的特性——外键约束。
当B表的外键关联到A表的主键时(表B是父表A表的子表),如果删除了A表,那么B中的外键则仍然关联着一个不存在的表的主键。而外键约束则设定了当约束被破坏时应该应用的的规则,包括防止约束破坏。
创建一个外键约束的语法是:
FOREIGN KEY(item_name)REFERENCES table (column)
table(column)子句是约束该外键的父表列的引用,该语句只是标识了关系,并没有说明约束被破坏时如何操作。
语句后面附上内容来决定触发什么动作:
ON DELETE action
ON UPDATE action
其中action总共有5个动作可选
(1)RESTRICT:不指定任何动作
(2)NO ACTION:不指定任何动作
(3)SET DEFAULT:
(4)CASCADE:最有用的选项。删除父记录将导致那个以父ID作为外键的子记录也被删除
(5)SET NULL:删除父记录将导致子表中相应的外键被设置为NULL,如果该表的列定义为NOT NULL(大部分情况是这样),删除父记录将引发一个错误
注意
由于只有InnoDB表类型的表支持外键约束,所以相关联的两个表都必须是InnoDB类型。
此外,为了MySQL能够比较外键和主键的值,相关的列必须是相同类型的。比如:数字列的大小必须相同;文本列的字符集和校对规则必须相同。
0 0
- MySQL约束:非空约束、主键约束、唯一约束、默认约束、外键约束
- MYSQL外键约束
- MySQL .外键约束
- Mysql外键约束
- Mysql 外键约束
- mysql 外键约束
- MySQL外键约束
- MySQL外键约束
- MySQL 外键约束
- MySQL外键约束
- MySQL外键约束
- MySQL外键约束
- mysql 外键约束
- mysql外键约束
- Mysql外键约束
- MySQL外键约束
- MySQL外键约束
- mysql外键约束
- struts2学习笔记(十二)多文件上传
- 广度优先搜索
- UVa 1583 - Digit Generator
- Android使用Universal-ImageLoader在ListView中加载网络图片简单示例
- Java 中使用内存映射文件需要考虑的 10 个问题
- MySQL外键约束
- 如何加密Url防止被黑
- ACM之java 输入输出优化
- leveldb学习:Versionedit和Versionset
- 简析——SQL注入
- HDU 1754 I Hate It // 线段树
- The high signification of the modified poplar plywood
- codeVS第二次月赛 C
- Qt中如何用指针返回参数