foreign key:建立表之间的关系

#1、建立表关系:
#先建被关联的表,并且保证被关联的字段唯一
create table dep(
id int primary key,
name char(16),
comment char(50)
);

#再建立关联的表
create table emp(
id int primary key,
name char(10),
sex enum('male','female'),
dep_id int,
foreign key(dep_id) references dep(id)
on delete cascade  (on *** cascade是表示在被关联表进行***操作时,主表会同步修改,更新或者删除)

on update cascade
);

#2、插入数据
#先往被关联表插入记录
insert into dep values
(1,"IT","技术能力有限部门"),
(2,"销售","销售能力不足部门"),
(3,"财务","花钱特别多部门");

#再往关联表插入记录
insert into emp values
(1,'egon','male',1);

insert into emp values
(2,'alex','male',1),
(3,'wupeiqi','female',2),
(4,'yuanhao','male',3),
(5,'jinximn','male',2);

delete from emp where dep_id=1;

delete from dep where id=1;

delete from dep where id=3;

foreign key只能先建立被关联表再建立主表

这种强行建立的关系会在修改主表或者被关联表的时候变得很麻烦(以后扩展)

因为你建立表的时候就要建立表的结构,表的关联关系做好了,

所以egon建议在真正做项目的时候只需要在逻辑层面建立关系

再用应该程序去实现就可以了

最好不要修改数据库!!!否则要改的更多

写项目时最好不要建立硬性关系

(虽然你可以使用on *** cascade使操作便利,但是无法改变要先向被关联表插记录再向关联表插记录,类似更多)

转载于:https://www.cnblogs.com/FlFtFw/p/9541338.html

foreign key相关推荐

  1. Java数据库foreign,mysql中的外键foreign key 作者:Java_xb

    一张表中可以有多个外键. 外键的默认作用有两点: 1.对子表(外键所在的表)的作用:子表在进行写操作的时候,如果外键字段在父表中找不到对应的匹配,操作就会失败. 2.对父表的作用:对父表的主键字段进行 ...

  2. ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`meiduo`.`

    在MySQL中删除一张表或一条数据的时候,出现 这是因为MySQL中设置了foreign key关联,造成无法更新或删除数据.可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况. 我们 ...

  3. MYSQL外键(Foreign Key)的使用

    在MySQL 3.23.44版本后,InnoDB引擎类型的表支持了外键约束. 外键的使用条件: 1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持 ...

  4. SQLServer之修改FOREIGN KEY约束

    原文:SQLServer之修改FOREIGN KEY约束 使用SSMS数据库管理工具修改FOREIGN KEY约束 1.连接数据库,选择数据表->右键点击->选择设计(或者展开键,选择要修 ...

  5. mysql删除有外链索引数据,Cannot delete or update a parent row: a foreign key constraint fails 问题的解决办法

    mysql删除有外链索引数据,Cannot delete or update a parent row: a foreign key constraint fails 问题的解决办法 参考文章: (1 ...

  6. mysql foreign key 设置_mysql foreign key(外键) 说明与实例

    一,什么是foreign key,及其完整性 个人觉得,foreign key就是表与表之间的某种约定的关系,由于这种关系的存在,我们能够让表与表之间的数据,更加的完整,关连性更强.关于完整性,关连性 ...

  7. 【Foreign Key】Oracle外键约束三种删除行为

    Oracle使用外键来限制子表中参考的字段值,要求子表中的数据必须在主表中存在.当主表的记录发生变化时导致外键参考唯一约束值发生了变化时,Oracle指定了三种动作:默认值(类似于restrict). ...

  8. 错误:mysql foreign key errno 150

    为什么80%的码农都做不了架构师?>>>    Mysql错误:ERROR 1005 (HY000): Can't create table 'mytable.#sql-191_1c ...

  9. SQL FOREIGN KEY 约束

    一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY. 让我们通过一个例子来解释外键.请看下面两个表: "Persons" 表: "Orders& ...

  10. CHIL-ORACLE-主外键约束(primary key / foreign key)

    主键约束 要求主键列数据唯一,并且不允许为空 外键约束 用于量表建立关系,需要指定引用朱彪的那列(主表必须是主键)1.主键约束 ( primary key )--例如1:create table te ...

最新文章

  1. 【Android 修炼手册系列内容】
  2. visualvm远程监控jvm_大型企业JVM实战:优化及面试热点分析
  3. 利用栈解决深度搜索问题
  4. 程序员利用网吧挖矿,获利上亿元~!
  5. linux配置https
  6. Variant 数组
  7. Zabbix 5.0 监测Windows远程桌面登录
  8. Linux 上最好的视频编辑软件
  9. 日本铁路“猫站长”走红
  10. 项目组最重要的三个角色
  11. android drawtext文字大小,Android 使用View绘制文字(DrawText)技术总结
  12. 吉首大学2019年程序设计竞赛 A-SARS病毒(递推推公式)
  13. [No000030]程序员节发点别的:中国教育整个把人脑子搞坏了-易中天
  14. Debian搭建PPTP
  15. 打印1000~2000年之间的闰年
  16. 索尼6400夜景测试 镜头索尼18-55
  17. 手把手教你用Python打造一款批量下载视频并能可视化显示下载进度的下载器
  18. 2022-02-15:扫地机器人。 房间(用格栅表示)中有一个扫地机器人。 格栅中的每一个格子有空和障碍物两种可能。 扫地机器人提供4个API,可以向前进,向左转或者向右转。每次转弯90度。 当扫地机
  19. 一口“臊子面”的背后,是西安小吃产业发展的缩影
  20. Java中有哪几种锁?分别有什么特点?

热门文章

  1. 解决Myeclipse中断点不起作用的方法
  2. C# 调用并执行SQL脚本文件
  3. 解决AngularJS在IE下取数据总是缓存的问题
  4. MySQL 随机获得一条数据的方法
  5. 07. 千万不要重载、||和, 操作符
  6. linux设置r镜像,一劳永逸,R的个性化默认配置
  7. mysql 前10条 平均数_mysql – 每组最新N条记录的平均值
  8. ubuntu终端运行python找不到模块_在ubuntu里直接通过终端编写运行python程序
  9. 经纬度距离计算小工具_造价算量慢?70个造价史上最实用小工具和计算表格,速领...
  10. postman添加cookie_有了这款IDEA插件,再也不需要postman了