我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【Oracle Database】数据库约束管理

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【Oracle Database】数据库约束管理

主键约束
SQL> alter table customers add constraint customers_pk primary key (customer_id);  
Table altered.

col constraint_name for a30
col constraint_type for a15
col table_name for a30
col index_name for a30

SQL> select constraint_name,constraint_type,table_name,index_name,status from dba_constraints where constraint_type = 'P' and owner = 'SOE';
CONSTRAINT_NAME                CONSTRAINT_TYPE TABLE_NAME                     INDEX_NAME                     STATUS
------------------------------ --------------- ------------------------------ ------------------------------ --------
CUSTOMERS_PK                   P               CUSTOMERS                      CUSTOMERS_PK                   ENABLED

col constraint_name for a30
col constraint_type for a15
col table_name for a30
col column_name for a30

SQL> select dba_cons_columns.constraint_name,
dba_cons_columns.table_name,
dba_cons_columns.column_name,
dba_cons_columns.position
from dba_constraints join dba_cons_columns
on (dba_constraints.constraint_name = dba_cons_columns.constraint_name)
where constraint_type = 'P' and dba_constraints.owner = 'SOE';
CONSTRAINT_NAME                TABLE_NAME                     COLUMN_NAME                      POSITION
------------------------------ ------------------------------ ------------------------------ ----------
CUSTOMERS_PK                   CUSTOMERS                      CUSTOMER_ID                             1

禁用约束
SQL> alter table customers disable constraint customers_pk;

启用约束
SQL> alter table customers enable constraint customers_pk;

删除约束
SQL> alter table customers drop constraint customers_pk;

外键约束
SQL> alter table orders add constraint orders_customer_id_fk foreign key (customer_id) references customers (customer_id);
Table altered.

col constraint_name for a30
col constraint_type for a20
col table_name for a20
col r_constraint_name for a30
col delete_rule for a15

SQL> select constraint_name,constraint_type,table_name,r_constraint_name,delete_rule,status from dba_constraints where constraint_type = 'R' and owner = 'SOE';
CONSTRAINT_NAME                CONSTRAINT_TYPE      TABLE_NAME           R_CONSTRAINT_NAME              DELETE_RULE     STATUS
------------------------------ -------------------- -------------------- ------------------------------ --------------- --------
ORDERS_CUSTOMER_ID_FK          R                    ORDERS               CUSTOMERS_PK                   NO ACTION       ENABLED

col child_table_name for a20
col father_table_name for a20
col child_column_name for a20
col father_column_name for a20

SQL> select dba_cons_columns.constraint_name,
dba_cons_columns.table_name as child_table_name,
dba_cons_columns.column_name as child_column_name,
dba_cons_columns.position,
dba_indexes.table_name as father_table_name,
dba_ind_columns.column_name as father_column_name
from
dba_constraints join dba_cons_columns on (dba_constraints.constraint_name = dba_cons_columns.constraint_name)
join dba_indexes on (dba_constraints.r_constraint_name = dba_indexes.index_name)
join dba_ind_columns on (dba_indexes.index_name = dba_ind_columns.index_name) where constraint_type ='R' and dba_constraints.owner = 'SOE';
CONSTRAINT_NAME                CHILD_TABLE_NAME     CHILD_COLUMN_NAME      POSITION FATHER_TABLE_NAME    FATHER_COLUMN_NAME
------------------------------ -------------------- -------------------- ---------- -------------------- --------------------
ORDERS_CUSTOMER_ID_FK          ORDERS               CUSTOMER_ID                   1 CUSTOMERS            CUSTOMER_ID

1、普通外键约束(如果存在子表引用父表主键,则无法删除父表记录)
SQL> alter table orders add constraint orders_customer_id_fk foreign key (customer_id) references customers (customer_id);
2、级联外键约束(可删除存在引用的父表记录,而且同时把所有有引用的子表记录也删除)
SQL> alter table orders add constraint orders_customer_id_fk foreign key (customer_id) references customers (customer_id) on delete cascade;
3、置空外键约束(可删除存在引用的父表记录,同时将子表中引用该父表主键的外键字段自动设为NULL,但该字段应允许空值)
SQL> alter table orders add constraint orders_customer_id_fk foreign key (customer_id) references customers (customer_id) on delete set null;


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【Oracle Database】数据库约束管理

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

数据库---约束

一、概述       创建表的时候可以给表中的数据添加数据校验规则,这些规则称之为约束。在创建表的时候,同时可以指定所插入数据的一些规则,比如某个字段不能为空值;某个字段的值(比如年龄)不能小于零等等。这些规则称为约束。约束是在表上强制执行的数据校验规则,它提
数据库---约束
2016-09-13

Oracle数据库中的约束是什么

在Oracle数据库中,约束是用来确保数据完整性和一致性的规则。约束可以应用在表的列级别或表级别,常见的约束类型包括:主键约束:确保列或列组的唯一性,并且列或列组不允许包含NULL值。外键约束:确保一个表中的外键值只能引用另一表中的主键值
Oracle数据库中的约束是什么
2024-03-02

数据库主键约束

mssql数据库的主键约束中,主键名查询:exec sp_pkeys '数据表名'修改主键名称的方法:--第一步,删除主键约束alter table 表名 drop constraint 主键名;--第二步,添加主键约束alter table 表名 add
2019-04-11

MySQL数据库的约束

文章目录 一、约束是什么?二、约束的具体操作Not NULLUNIQUE约束的组合使用PRIMARY KEYDEFAULTFOREIGN KEY 一、约束是什么? 约束就是,在创建表的时候,对表设置一些规则,只有满足这些规
2023-08-30

MySQL数据库表约束讲解

目录mysql数据库表约束一、主键约束二、外键约束三、非空约束四、唯一约束五、默认约束六、自增约束数据库建表的约束条件常用约束条件及简单介绍MySQL数据库表约束为了防止往数据表中插入错误的数据,在MySQL中,定义了一些维护数据库完整性
2022-06-20

mysql数据库怎么删除约束

在 mysql 数据库中删除约束,使用 alter table 语句,指定要删除的约束名称。步骤:1. 确定约束名称;2. 编写 alter table 语句,指定表名和约束名称;3. 执行语句。如何在 MySQL 数据库中删除约束删除
mysql数据库怎么删除约束
2024-08-05

编程热搜

目录