MySQL—FOREIGN KEY

作用:保持数据一致性,完整性。实现一对一或一对多关系。(学习的过程中,老师说,实际的生产中,一般不使用物理上的外键约束的,都是使用逻辑上的外键约束)

要求:

  1. 父表与子表的存储引擎必须相等,而且只能是InnoDB
  2. 禁止使用临时表;
  3. 外键列和参照列的数据类型相同。数字的长度是否有符号位必须相同。字符的长度则可以不同;
  4. 外键列和参照列必须创建索引。如果,外键列不存在索引的话,MySQL会自动创建索引。

约束的参照操作(在进行数据插入的时候,是先插入父表,在插入子表的)

  1. CASCADE:从父表删除或更新,且自动删除或更新 子表中匹配的行
  2. SET NULL: 从父表删除或更新行,并设置子表中的外键列为NULL。如果使用该选项,必须保证子表列没有指定NOT NULL;
  3. RESTRICT:决绝对父表的删除或更新操作;
  4. NO ACTION:标准sql关键字,在MySQL中,与RESTRICT相同;

Eg:FOREIGN KEY(Pid) REFERENCES province(Id) ON DELETE CASCADE;

posted @ 2015-03-14 17:48  [0]  阅读(281)  评论(0编辑  收藏  举报