Mysql 设置foreign key 目的是什么?

nianzhang747 2009-08-10 10:50:45
foreign key 很重要吗?
不设置可以不
...全文
416 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wmp926098 2011-11-06
  • 打赏
  • 举报
回复
除了可以用 constraint table1FK foreign key(外键)reference table2(主键)设置外键,还可以其他方式设置吗?
sciland 2009-08-11
  • 打赏
  • 举报
回复
MYSQL 外键定义
建立外键的前提: 本表的列必须与外键类型相同(外键必须是外表主键)。

外键作用: 使两张表形成关联,外键只能引用外表中的列的值!

指定主键关键字: foreign key(列名)

引用外键关键字: references <外键表名>(外键列名)

事件触发限制: on delete和on update , 可设参数cascade(跟随外键改动), restrict(限制外表中的外键改动),set Null(设空值),set Default(设默认值),[默认]no action

例如:

outTable表 主键 id 类型 int

创建含有外键的表:
create table temp(
id int,
name char(20),
foreign key(id) references outTable(id) on delete cascade on update cascade);

说明:把id列 设为外键 参照外表outTable的id列 当外键的值删除 本表中对应的列筛除 当外键的值改变 本表中对应的列值改变。
vinsonshen 2009-08-10
  • 打赏
  • 举报
回复
主要是为了保证数据的完整性
在一些项目开发中,有外键的话, 利用一些工具会大大提高开发效率。
denniswwh 2009-08-10
  • 打赏
  • 举报
回复
1、foreign key是为了约束与主表之间的数据一致性,避免垃圾数据的产生,
2、当然可以不设置,只要程序逻辑是正确的就行。
fcoolx 2009-08-10
  • 打赏
  • 举报
回复
数据的完整性
netxuning 2009-08-10
  • 打赏
  • 举报
回复
学习

56,940

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧