`
IThead
  • 浏览: 420704 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle 添加外键

阅读更多
1、默认的创建方式
在删除被参照的数据时,将无法删除。
CREATE TABLE T_INVOICE
(ID NUMBER(10) NOT NULL,
INVOICE_NO VARCHAR2(30) NOT NULL,
CONSTRAINT PK_INVOICE_ID PRIMARY KEY(ID));

CREATE TABLE T_INVOICE_DETAIL
(ID NUMBER(10) NOT NULL,
AMOUNT NUMBER(10,3),
PIECE NUMBER(10),
INVOICE_ID NUMBER(10),
CONSTRAINT PK_DETAIL_ID PRIMARY KEY(ID));
ALTER TABLE T_INVOICE_DETAIL
ADD CONSTRAINT FK_INVOICE_ID
FOREIGN KEY(INVOICE_ID ) REFERENCES T_INVOICE(ID);

2、级联删除
    外键语法有个选项可以指定级联删除特征。这个特征仅作用于父表的删除语句。使用这个选项,父表的一个删除操作将会自动删除所有相关的子表记录
ALTER TABLE T_INVOICE_DETAIL
ADD CONSTRAINT FK_INVOICE_ID
FOREIGN KEY(INVOICE_ID ) REFERENCES T_INVOICE(ID)
ON DELETE CASCADE;

    如果不能级联删除,可设置子表外键字段值为null,使用on delete set null语句(外键字段不能设置not null约束).
ALTER TABLE T_INVOICE_DETAIL
ADD CONSTRAINT FK_INVOICE_ID
FOREIGN KEY(INVOICE_ID ) REFERENCES T_INVOICE(ID)
ON DELETE SET NULL;

三、参照字段语法结构
    创建外键约束是,外键字段参照父表的主键或Unique约束字段。这种情况下可以不指定外键参照字段名,如下:
ALTER TABLE T_INVOICE_DETAIL
ADD CONSTRAINT FK_INVOICE_ID
FOREIGN KEY(INVOICE_ID ) REFERENCES T_INVOICE;

    当没有指定参照字段时,默认参照字段是父表的主键。
    如果外键字段参照的是Unique而非Primary Key字段,必须在add constraint语句中指定字段名。

分享到:
评论

相关推荐

    在Oracle数据库中添加外键约束的方法详解

    添加外键:添加一个外键到表。 删除外键:删除已选择的外键。 使用 名 编辑框来输入新键的名。 使用 参考模式、参考表 和 参考限制 下拉列表来分别选择一个外部索引数据库、表及限制。 要包含栏位到键,只需简单地...

    ALTER TABLE table_name

    一个字段: ALTER TABLE table_name MODIFY(字段类型 数据类型)); 添加一个字段: ALTER TABLE table_name ADD(字段类型 数据类型);

    oracle约束

    详细介绍了oracle的常见约束,表级约束(主键),列级约束,唯一性约束,外键约束,并介绍了如何给相应的约束命名

    Oracle最常用的语句

    为已经创建users表添加外键  alter table users  add constraint fk_roleid foreign key (roleid)  references role(role_id) on delete cascad; --下边写主表的列  on delete cascad是创建级联 13.把两个列连接...

    《Oracle Database 11g & MySQL 5.6开发手册

    Michael McLaughlin,OracleACE,是美国爱达荷州杨百翰大学计算机信息技术系教授,Michael参与Oracle公司...7.4.2 添加、修改和抛弃列 199 7.4.3 抛弃表213 7.5 索引214 7.5.1 Oracle数据库的 索引维护 215 7.5.2 My

    Oracle_Database_11g完全参考手册.part2/3

    4.12.2 外键 4.12.3 单数名称 4.12.4 简洁 4.12.5 对象名辞典 4.13 智能键和列值 4.14 建议 第Ⅱ部分 SQL和SQL*PIus 第5章 SQL中的基本语法 5.1 样式 5.2 创建NEWSPAJPER表 5.3 用SQL从表中选择数据 5.4 select、...

    Oracle_Database_11g完全参考手册.part3/3

    4.12.2 外键 4.12.3 单数名称 4.12.4 简洁 4.12.5 对象名辞典 4.13 智能键和列值 4.14 建议 第Ⅱ部分 SQL和SQL*PIus 第5章 SQL中的基本语法 5.1 样式 5.2 创建NEWSPAJPER表 5.3 用SQL从表中选择数据 5.4 select、...

    oracle清空所有表数据

    3. 添加外键约束 代码使用powerdesign生成 /*==============================================================*/ /* DBMS name: ORACLE Version 10g */ /* Created on: 2013/8/16 14:30:03 */ /*=================...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    在创建表时,经常会创建该表的主键、外键、唯一约束、Check约束等  语法结构 create table 表名( [字段名] [类型] [约束] ……….. CONSTRAINT fk_column FOREIGN KEY(column1,column2,…..column_n) ...

    oracle创建表的方法和一些常用命令

    1、主键和外键主键:关系...注2:Oracle数据库共有5个约束:主键、外键、非空、唯一、条件非空:这个列的值不能为空(NOT NULL)唯一:这个列的值在表中是唯一存在的,不能重复,但可以为空值(NULL)条件:可以对列的

    oracle基本语句总结.text

    1)增删改查:2) 添加列:3)创建表空间4)创建临时表空间5)创建用户6)赋权7)建表/删表8)加约束/主键9)检查10)加默认的不行11)外键 12)复制表13)复制表结构 14)在已有的表结构中插入数据.....

    Hibernate注解

    * 方法一 使用这种配置,在为“一端”添加“多端”时,不会修改“多端”的外键。在“一端”加载时,不会得到“多端”。如果使用延迟加载,在读“多端”列表时会出异常,立即加载在得到多端时,是一个空集合(集合...

    mysql面试题,MySQL是一种关系型数据库管理系统,由Oracle公司开发

    答:MySQL是一种关系型数据库管理系统,由Oracle公司开发。 2. MySQL的安装有哪些方式? 答:本地安装、虚拟机安装、云服务安装(阿里云RDS、腾讯云CDB等) 3. MySQL的数据类型有哪些? 答:数值型(整数、小数)、日期型、...

    oracle学习经典教程

    目 录 TIANLESOFTWARE ORACLE 学习手册.......1 ... 1.4.3.2.2 外键没有创建索引...................98 1.4.4 Latch 说明.......98 1.4.4.1 Latch.....................98 1.4.4.2 有关SPin 的说明.99 ...

    oracle数据库经典题目

    1.在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务进程。 2.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)和数据控制语句(DCL)。 3.在需要滤除查询结果中重复的行时,必须...

    MySQL,Oracle系统学习,以及SQL语言—–数据库篇学习笔记

    SQL语言二维表的创建约束example外键约束删除约束序列索引视图 `VIEW`分页备份表二维表的维护添加新字段修改原有字段删除表修改表名表数据的操作(关键时刻)nullselectorder bywhere运算符Oracle中SQL函数单行函数...

    TianleSoftware Oracle中文学习手册

    在Oracle 几年的学习中,做了很多的实验,也遇到了很多的问题, 在这个过程中,积累了一些学习文档。也更新到了blog上。 因为太多,不便于查阅。 根据自己对 Oracle 的理解,把这些 blog 进行了分类,并进行了一些...

    apex-ajax-upload

    将项目添加到您的页面类型:AJAX 文件上传 [插件]* 您需要按照以下屏幕截图配置特定于您的环境的设置: 对于可选设置: 包含外键的项目:在这里将页面项目设置为将进入外键列的值外键列: Table Name中外键应该去的...

    BOS 技术整理

    @OneToMany(mappedBy 相当于 inverse ) @ManyToOne 结合 @JoinColumn 添加一列外键 @ManyToMany 一方写 mappedBy 放弃外键维护、另一方 @JoinTable 维护中间表 收派标准修添加能实现 html 请求 后台...

Global site tag (gtag.js) - Google Analytics