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;

技术分享

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。