Oracle创建外键约束
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叫子表。
注意事项:
- 父子表中相应列的数据类型必须一致,列名可以不同;
- 父表字段必须是主键或者唯一键;
- 子表中外键的值必须在父表中,否则会报错:未找到父项关键字。
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创建外键约束相关推荐
- oracle创建外键约束的两种方式
1.创建表时直接创建外键约束 create table books(bookid number(10) not null primary key,bookName varchar2(20) not n ...
- oracle外键约束强行insert,oracle 禁用外键约束
1.ORACLE数据库中的外键约束名都在表user_constraints中可以查到.其中constraint_type='R'表示是外键约束. 2.启用外键约束的命令为:alter table ta ...
- oracle外键约束怎么删除,mysql oracle 删除外键约束
oracle 删除外键约束 禁用约束 启用约束 oracle 删除外键约束 禁用约束 启用约束 执行以下sql生成的语句即可 删除所有外键约束 Sql代码 select 'alter table ' ...
- Oracle外键约束如何同时更新,SQL与ORACLE的外键约束-级联更新和删除
/* SQL与ORACLE的外键约束--级联删除 最近软件系统中要删除一条记录,就要关联到同时删除好多张表,他们之间还存在着约束关系.所以考虑到在创建表时加上约束关系,具体如下: SQL的外键约束可以 ...
- 外键约束的作用以及如何创建外键约束
外键约束 外键必须是另一个表的主键. 外键的作用: 1.实体完整性,确保每个实体是唯一的(通过主键来实施) 2.域完整性,确保属性值只从一套可选的集合里选择 3.关联完整性,确保每个外键或null或含 ...
- mysql 创建外键约束以及注意事项
mysql 创建外键约束以及注意事项: 创建外键: 首先创建一张区域表 CREATE TABLE `area` (`id` int(11) NOT NULL DEFAULT '0' COMMENT ' ...
- SQLsever2008创建外键约束
use tsglcreate table ts(书号 char(20) primary key, --主键约束的写法书名 char(20) ,出版社 char(25),类别 char(25),作者 c ...
- oracle添加外键约束
1.创建表时并创建外键约束 create table score( scoreID int primary key, stuID int , score int constraint ck_score ...
- 使用mysql创建外键约束_Mysql创建外键约束的两种方式
通过给mysql的表字段添加外键约束,可以有效的保持数据的一致性和完整性,数据就不会很容易出问题. 1.创建表时直接创建外键约束create table books( bookid number(10 ...
最新文章
- 这可能是十年来最酷的神经科学发现
- iOS 5.1.1 设备不能安装AdHoc问题版本号
- 电子数字计算机最早应用于哪个领域,2013计算机一级B考试模拟试题及答案(2)...
- ad怎么批量改元器件封装_AD6.8的原理图中如何批量修改封装?
- Linux单用户下提示权限不够,Linux_/dev/null 权限不足,/dev/null文件设备的权限不对, - phpStudy...
- 云浮市云计算大数据中心预计明年6月建成
- 通过ODBC实现ACCESS与SQL数据互导(临安人才网 )
- spring 处理带有特殊字符的请求_Spring爸爸又给Spring MVC生了个弟弟叫Spring WebFlux...
- CentOS 5 常见的configure error的解决方法
- 【GYM-100889 C】Chunin Exam【左右手路径问题】
- Tera term的TTL脚本使用方法
- 初中计算机操作题五环,第五课 电脑出算术题 课件
- Using Vanishing Points for Camera Calibration
- Android SwipeRefreshLayout GMail的下拉刷新效果
- JavaScript中节点获取,节点的属性,如何操作节点
- 7个银行的软件测试项目实战,别再说简历项目不知道怎么写了
- 《看聊天记录都学不会C语言?太菜了吧》(1)我在大佬群里问基础问题没人理?
- Unity 基于LineRenderer组件实现连线功能
- OpenMV 机器视觉模块 简介
- CodeRunner解决联网验证问题
热门文章
- 制作U盘版Windows 8部署工具
- AI思维导图来了,让活动策划更加简单!
- linux代码没左值,【已解决】用arm-xscale-linux-gnueabi编译代码出错:error: lvalue required as unary ‘’ operand...
- exynos 4412 Framebuffer驱动详解
- Unity Shader入门精要 | 渲染路径、光源类型和阴影
- 赚外快 —— 25个最常见编程接单的网站集合
- 使用ansible管理华为交换机
- 【程序设计】VB.NET程序设计学习指南
- ETL技术入门之ETL初认识
- 计算机视觉(相机标定)-2.1 摄像机标定