oracle constraints immediate,OracleSQL细节总结之constraint约束

在表创建时,指定约束条件,也可在创建表后,再添加修改;约束条件分为列级或者表级;约束延期是一个对主键、唯一键等约束进行延

1)约束constraints:在表上强加的约束条件,以保证数据的完整性;防止关联表的数据丢失;

常见的约束类型:

- NOT NULL

- UNIQUE

- PRIMARY KEY

- FOREIGE KEY

- CHECK

在表创建时,指定约束条件,,也可在创建表后,再添加修改;约束条件分为列级或者表级;

REATE TABLE [schema.]table

(column datatype [DEFAULT expr]

[column_constraint],

...

[table_constraint][,...]);

2)添加约束

ALTER TABLE table

ADD [CONSTRAINT constraint] type (column);

3)删除约束

ALTER TABLE table_name DROP CONSTRAINT constraint_name

4)重名约束

alter table table_name rename constraint old_name to new_name

5)约束有效/无效

alter table table_name enable/disable constraint constraint_name;

约束延期是一个对主键、唯一键等约束进行延迟检查的功能。可以使用该功能将约束检查延迟到事务提交时,而不是在进行DDL操作之后立即进行检查。所以对约束检查也有这两个选项:延迟和立即;

SQL> create table aaa

2 (

3 c1 number constraint aaa_pk primary key deferrable initially immediate,

4 c2 number constraint c2_ck check(c2>10) deferrable initially immediate

5 );

Table created.

SQL> set constraints c2_ck deferred;

Constraint set.

SQL> insert into aaa value (1,1);

insert into aaa value (1,1)

*

ERROR at line 1:

ORA-00928: missing SELECT keyword

SQL> insert into aaa values (1,1);

1 row created.

SQL> commit;

commit

*

ERROR at line 1:

ORA-02091: transaction rolled back

ORA-02290: check constraint (SCOTT.C2_CK) violated

提交时就会约束检查,即延迟检查;

6)查看约束

user_constraints

user_cons_columns

logo.gif

1428d0e076c3959ab11d28a39bc84fab.png

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值