• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql外键的使用跟引用完整性

mysql 搞代码 7年前 (2018-06-06) 115次浏览 已收录 0个评论

mysql外键的使用和引用完整性

  • 外键和引用的完整性

利用外键关系可以在某个数据表声明与另外一个数据表的某个索引相关联的索引,同时还可以将约束条件施加到外键关系中。
外键可以帮助维护数据的一致性,如果不使用外键就需要我们自己来维护不同数据表之间的一致性。

Mysql中,InnoDB存储引擎提供了对外键的支持
父表:包含原始键值的数据表
子表:引用父表中键值的数据表

  • 外键的创建和使用

CREATE TABLE `test_user_info` (
  `id` int(8) NOT NULL AUTO_INCREMENT,
  `user_id` int(8) NOT NULL,
  `address` varchar(100) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `user_id` (`user_id`),
  CONSTRAINT `user_id` FOREIGN KEY (`user_id`) REFERENCES `test_user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
CONSTRAINT用于给外键关系起一个名字,如果没有mysql会默认创建一个名字
FOREIGN KEY列出子表里面被索引的数据列,必须匹配附表中的索引值
REFERENCES子句列出父表中索引数据列的名字,子表中的外键将根据该子句索引父表中的数据列
ON DELETE用于指定当父表中的数据被删除时子表应该做什么
ON UPDATE用于指定当父表中的数据被更新时子表应该做什么

  • 当父表被删除时子表的几种行为

NO ACTION 当父表中的数据被删除时,与之关联的子表不做改动
CASCADE 当父表中的数据被删除时,与之关联的子表中的数据也被删除
SET NULL 当父表中的数据被删除时,与之关联的子表中的索引列被设置为NULL 
SET DEFAULT 当父表中的数据被删除时,与之关联的子表中的索引列被设置为默认值

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql外键的使用跟引用完整性
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址