1. 创建表时创建外键

CREATE TABLE T1(employee_id     NUMBER(4), last_name       VARCHAR2(10), job_id          VARCHAR2(9), salary          NUMBER(7,2), department_id   CONSTRAINT fk_deptno REFERENCES T2(department_id) );

其中T2叫父表,T1叫子表。

注意事项:

  1. 父子表中相应列的数据类型必须一致,列名可以不同;
  2. 父表字段必须是主键或者唯一键;
  3. 子表中外键的值必须在父表中,否则会报错:未找到父项关键字。

2. 修改时创建外键约束

有三种形式的外键约束:

2.1 普通外键约束

如果存在子表引用父表主键,则无法删除父表记录

ALTER TABLE T1 ADD CONSTRAINT FK_INVOICE_ID FOREIGN KEY(INVOICE_ID ) REFERENCES T2 (ID);

2.2 级联外键约束

可删除存在引用的父表记录,而且同时把所有有引用的子表记录也删除

ALTER TABLE T1 ADD CONSTRAINT FK_INVOICE_ID FOREIGN KEY(INVOICE_ID ) REFERENCES T2(ID) ON DELETE CASCADE;

2.3 置空外键约束

可删除存在引用的父表记录,同时将子表中引用该父表主键的外键字段自动设为NULL,但该字段应允许空值
ALTER TABLE T1 ADD CONSTRAINT FK_INVOICE_ID FOREIGN KEY(INVOICE_ID ) REFERENCES T2(ID) ON DELETE SET NULL;

3. 启用/禁用外键

DISABLE(禁用) | ENABLE (启用)CONSTRAINT constraint_name

4. 删除外键约束

drop constraint constraint_name;

5. 其他

创建主键:
ALTER TABLE T1 ADD CONSTRAINT PK_T1_ID PRIMARY KEY(ID);

Oracle创建外键约束相关推荐

  1. oracle创建外键约束的两种方式

    1.创建表时直接创建外键约束 create table books(bookid number(10) not null primary key,bookName varchar2(20) not n ...

  2. oracle外键约束强行insert,oracle 禁用外键约束

    1.ORACLE数据库中的外键约束名都在表user_constraints中可以查到.其中constraint_type='R'表示是外键约束. 2.启用外键约束的命令为:alter table ta ...

  3. oracle外键约束怎么删除,mysql oracle 删除外键约束

    oracle 删除外键约束 禁用约束 启用约束 oracle 删除外键约束 禁用约束 启用约束 执行以下sql生成的语句即可 删除所有外键约束 Sql代码  select 'alter table ' ...

  4. Oracle外键约束如何同时更新,SQL与ORACLE的外键约束-级联更新和删除

    /* SQL与ORACLE的外键约束--级联删除 最近软件系统中要删除一条记录,就要关联到同时删除好多张表,他们之间还存在着约束关系.所以考虑到在创建表时加上约束关系,具体如下: SQL的外键约束可以 ...

  5. 外键约束的作用以及如何创建外键约束

    外键约束 外键必须是另一个表的主键. 外键的作用: 1.实体完整性,确保每个实体是唯一的(通过主键来实施) 2.域完整性,确保属性值只从一套可选的集合里选择 3.关联完整性,确保每个外键或null或含 ...

  6. mysql 创建外键约束以及注意事项

    mysql 创建外键约束以及注意事项: 创建外键: 首先创建一张区域表 CREATE TABLE `area` (`id` int(11) NOT NULL DEFAULT '0' COMMENT ' ...

  7. SQLsever2008创建外键约束

    use tsglcreate table ts(书号 char(20) primary key, --主键约束的写法书名 char(20) ,出版社 char(25),类别 char(25),作者 c ...

  8. oracle添加外键约束

    1.创建表时并创建外键约束 create table score( scoreID int primary key, stuID int , score int constraint ck_score ...

  9. 使用mysql创建外键约束_Mysql创建外键约束的两种方式

    通过给mysql的表字段添加外键约束,可以有效的保持数据的一致性和完整性,数据就不会很容易出问题. 1.创建表时直接创建外键约束create table books( bookid number(10 ...

最新文章

  1. 这可能是十年来最酷的神经科学发现
  2. iOS 5.1.1 设备不能安装AdHoc问题版本号
  3. 电子数字计算机最早应用于哪个领域,2013计算机一级B考试模拟试题及答案(2)...
  4. ad怎么批量改元器件封装_AD6.8的原理图中如何批量修改封装?
  5. Linux单用户下提示权限不够,Linux_/dev/null 权限不足,/dev/null文件设备的权限不对, - phpStudy...
  6. 云浮市云计算大数据中心预计明年6月建成
  7. 通过ODBC实现ACCESS与SQL数据互导(临安人才网 )
  8. spring 处理带有特殊字符的请求_Spring爸爸又给Spring MVC生了个弟弟叫Spring WebFlux...
  9. CentOS 5 常见的configure error的解决方法
  10. 【GYM-100889 C】Chunin Exam【左右手路径问题】
  11. Tera term的TTL脚本使用方法
  12. 初中计算机操作题五环,第五课 电脑出算术题 课件
  13. Using Vanishing Points for Camera Calibration
  14. Android SwipeRefreshLayout GMail的下拉刷新效果
  15. JavaScript中节点获取,节点的属性,如何操作节点
  16. 7个银行的软件测试项目实战,别再说简历项目不知道怎么写了
  17. 《看聊天记录都学不会C语言?太菜了吧》(1)我在大佬群里问基础问题没人理?
  18. Unity 基于LineRenderer组件实现连线功能
  19. OpenMV 机器视觉模块 简介
  20. CodeRunner解决联网验证问题

热门文章

  1. 制作U盘版Windows 8部署工具
  2. AI思维导图来了,让活动策划更加简单!
  3. linux代码没左值,【已解决】用arm-xscale-linux-gnueabi编译代码出错:error: lvalue required as unary ‘’ operand...
  4. exynos 4412 Framebuffer驱动详解
  5. Unity Shader入门精要 | 渲染路径、光源类型和阴影
  6. 赚外快 —— 25个最常见编程接单的网站集合
  7. 使用ansible管理华为交换机
  8. 【程序设计】VB.NET程序设计学习指南
  9. ETL技术入门之ETL初认识
  10. 计算机视觉(相机标定)-2.1 摄像机标定