搜档网
当前位置:搜档网 › oracle约束键解析

oracle约束键解析

oracle约束键解析
oracle约束键解析

oracle约束键解析

一、数据库约束的作用和分类

primarykey 和unique他们的作用是为了不让表中有重复的数据(一个表)check表示表中列的数据的范畴性的定义(一个表)

defult表示表中的默认值

foreignkey 表与表之间的联系(两个或两个以上的表)

【unique是能够包含null值的,同时一个表中能够有多个unique constraint

而primarykey在一个表中只能有一个.同时不能有null值】

二、针对约束创建有两种不同的思想

第一、创建标的时候一同将约束创建了

第二、你的表差不多创建好了,向表中添加约束

三、下面我就一一的介绍他们

一、primary key 主键约束

Ⅰ两种写法

①在差不多创建的表中添加约束

说明:添加约束的时候一定要修改表故用(alter[修改])

Alter table table1

Add primary key (列名1,列名2)

②同表一起创建

Create table table1

(列名1 数据类型是否为空primary key ,

列名1 数据类型是否为空

)

上面的是两种情形为一个字段设置主键,接下来是以多个列作为主键。

Create table table1

(

列名1 数据类型是否为空,

列名2 数据类型是否为空,

列名3 数据类型是否为空,

Primary key (列名1 ,列名2)

)

二、Check约束

那个和主键约束差不多

Alter table table1

Add unique(列名)

三、外键约束

好多的同学一直也都不明白得外键约束,到底什么才是外键?主键在那个表上?外键在那个表上?用T-SQL语句写的时候是主表在前,依旧外间表在前?等等一系列的问题!

接下来我讲给大伙儿说说那个主外键到底如何弄的。

事实上,主外键之间正如它的名字一样,他们之间有一个主从关系,一个主表,一个从表,主表上面设置的是主键,从表上面设置的是外键(foreign key),主键表中的数据发生变化的时,外键(foreign key)表的数据赶忙就发生改变。

Ⅰ向已有的表中添加一个主键(没有确实是添加,添加确实是修改表)

Alter table table1

Add foreign key (列名1)references table2(列名2)

Ⅱ创建表的时候一同创建外键

Create table table1

(列名4 数据类型是否为空primary key,

列名3 数据类型是否为空,

列名1 数据类型references table2 (列名2)

注:

Table1外键表

Table2主键表

列名1是主表列

列名2是外键表列

最一样常用的是主表的列和外键表的列的字段是一样的

一样多为ID 能够作为主键的。这是两个之间的交互。

四、Check约束

他也是基于一个表中的约束,限定表中列直截了当爱你数据的参照关系。

Ⅰ向一个以创建的表中添加约束

Alter tabel table1

Add constraint 约束名check(列名关于列的限制条件)

多是一些能够找到范畴的数据,例如年龄,身高,体重。

五、default 默认约束

他是一个关于某一个值的约束,他是唯独的一个用for关联词的句子

向表中添加一个默认约束

Alter tabletable1

Add default ‘默认值’for 列名

六、删除约束

删除约束也是关于表的修改故:

Alter table table1

Drop constraint 约束名

注:上面确实是我所明白得的一些约束。想要记住他们并不难

1 开头的一样差不多上alter table 表名或是create table 表名

2 在已有的表中添加约束用alter

3 与表同时创建用create

4 他们所有的关键字:

主键约束:primary key

唯独性约束:unique

外键约束:froeign key….references(参照)…..[两个表之间的关系,该是互相参照]

查询约束:….. constraint(约束)…….check[对字段查询,对字段约束]

默认约束:…….default………….for(给)……. 将前面默认的值给后边的字段

ORACLE约束总结

2019-05-13 08:36 by 潇湘隐者, 682 visits, 收藏, 编辑

你对ORACLE约束的了解如何?比较模糊依旧相当透彻?假如你对下面几个问题了如指掌的话,恭喜你,你差不多对约束把握得比较好了,不用看这篇文章了。ORACLE的约束有啥功能作用?有哪些类型约束(不同版本ORACLE是否不同)?视图有约束吗?约束是否会阻碍SQL性能?约束信息储备在哪些系统视图、数据字典中?约束能否修改名称?能否禁用约束?延迟约束有啥好处.......

约束定义

约束是强加在表上的规则或条件。确保数据库满足业务规则。保证数据的完整性。当对表进行DML或DDL 操作时,假如此操作会造成表中的数据违反约束条件或规则的话,系统就会拒绝执行那个操作。约束能够是列一级别的也能够是表级别的。定义约束时没有给出约束的名字,ORACE系统将为该约束自动生成一个名字,其格式为SYS_Cn,其中n为自然数(强烈建议各位在创建表或增加约束时,给约束定义名称。).

约束功能

约束的功能:实现一些业务规则,防止无效的垃圾数据进入数据库,爱护数据库的完整性(完整性指正确性与一致性)。从而使数据库的开发和爱护都更加容易。

约束分类

约束分为6类:非空(NOT NULL)约束、唯独(UNIQUE)约束、主键(PRIMARY KEY)约束、外键(FOR EIGN KEY)约束、条件(CHECK)约束、REF约束。

非空(NOT NULL)约束:顾名思义,所约束的列不能为NULL值。否则就会报错

唯独(UNIQUE)约束:在表中每一行中所定义的这列或这些列的值都不能相同。必须保证唯独性。否则就会违法约束条件。

主键(PRIMARY KEY)约束:唯独的标识表中的每一行,不能重复,不能为空。创建主键或唯独约束后,O RACLE会自动创建一个与约束同名的索引(UNIQUENES为UNIQUE唯独索引)。需要注意的是:每个表只能有且有一个主键约束。

外键(FOREIGN KEY)约束:用来爱护从表(Child Table)和主表(Parent Table)之间的引用完整性. 外键约束是个有争议性的约束,它一方面能够爱护数据库的数据一致性,数据的完整性。防止错误的垃圾数据入库;另外一方面它会增加表插入、更新等SQL性能的额外开销,许多系统里面通过业务逻辑操纵来取消外键约束。例如在数据仓库中,就举荐禁用外键约束。

条件(CHECK)约束:表中每行都要满足该约束条件。条件约束既能够在表一级定义也能够在列一级定义。在一列上能够定义任意多个条件约束。

REF约束的定义:REF column by definition references an object in another object type or in a relational table. A REF constraint lets you further describe the relationship between the RE F column and the object it references.

ORACLE 11 数据库的约束类型如下:

ORACLE 10 数据库的约束类型如下:

在oracle 官方文档 ://docs.oracle /cd/B19306_01/server.102/b14237/statviews_1037.htm下

C (check constraint on a table)

P (primary key)

U (unique key)

R (referential integrity)

V (with check option, on a view)

O (with read only, on a view)

://docs.oracle /cd/B28359_01/server.111/b28286/clauses002.htm

://docs.oracle /cd/B28359_01/server.111/b28320/statviews_1044.htm#REFRN20047

C Check constraint on a table

P Primary key

U Unique key

R Referential integrity

V With check option, on a view

O With read only, on a view

H Hash expression

F Constraint that involves a REF column

S Supplemental logging

关于H、S类型,尚不清晰情形,而且从上面我在11g数据库实验结果看,也没发觉这两种类型。(有了解的朋友能够告知一二)

约束命名规范

约束名称建议自己定义一套命名规则,否则使用系统生成的约束名,专门难能把它和对应的表、字段联系起来。

非空约束NN_表名_列名

唯独约束UK_表名_列名

主键约束PK_表名

外键约束FK_表名_列名

条件约束CK_表名_列名

默认约束DF_表名_列名

假如约束名称超过32位长度,建议应该缩写表名,而不应用NN_表名_数字。只是具体视情形而定,专门多时候 DF_表名_列名如此命名,往往超出了32字符。因此有时候需要缩写表面或是采纳其它规则。

约束操作

约束治理

创建各类约束

先看一下如何创建主键约束

CREATE TABLE "DM"."DEPT"

(

"DEPTNO" NUMBER(2,0) PRIMARY KEY,

"DNAME" VARCHAR2(14),

"LOC" VARCHAR2(13)

) TABLESPACE "TBS_DM_DAT" ;

COMMENT ON TABLE "DM"."DEPT" IS'部门表';

COMMENT ON COLUMN "DM"."DEPT"."DEPTNO" IS'部门编号';

COMMENT ON COLUMN "DM"."DEPT"."DNAME" IS'部门名称';

COMMENT ON CLOUMN "DM"."DEPT"."LOC" IS'部门所在地点';

现在它的约束名称是系统创建的。如图所示:

假如我们以下面的脚本创建,现在约束如下所示

1CREATE TABLE "DM"."DEPT"

2(

3 "DEPTNO" NUMBER(2,0),

4 "DNAME" VARCHAR2(14) ,

5 "LOC" VARCHAR2(13) ,

6CONSTRAINT "PK_DEPT" PRIMARY KEY ("DEPTNO") USING INDEX TABLES PACE TBS_DM_IN

7) TABLESPACE "TBS_DM_DAT" ;

8

9

10

11

12 COMMENT ON TABLE "DM"."DEPT" IS'部门表';

13

14 COMMENT ON COLUMN "DM"."DEPT"."DEPTNO" IS'部门编号';

15

16 COMMENT ON COLUMN "DM"."DEPT"."DNAME" IS'部门名称';

17

18 COMMENT ON CLOUMN "DM"."DEPT"."LOC" IS'部门所在地点';

19

假如一个表的约束类型比较多,你会看到一堆SYS_CN如此的约束,假如不认真核对后面的字段,专门难一眼看出约束类型、约束对应字段。

主键约束的限制

文档原文如下:(翻译在下)

Restrictions on Primary Key Constraints Primary constraints are subject to the following restrictions:

A table or view can have only one primary key.

一个表或视图有且只有一个主键

None of the columns in the primary key can be LOB, LONG, LONG RAW, VARRAY, NESTED TABLE, BFILE, REF, TIMESTAMP WITH TIME ZONE, or user-defined type. However, the primary key can co ntain a column of TIMESTAMP WITH LOCAL TIME ZONE.

主键字段不能为LOB、LOG、LOG RAW、VARRAY、NESTED TABLE、BFILE、REF、TIMESTAMP WITH TIME Z ONE或用户定义类型。然而它能够包含TIMESTAMP WITH LOCAL TIME ZONE类型的字段。

The size of the primary key cannot exceed approximately one database block.

主键大小不能超过一个数据块大小。

A composite primary key cannot have more than 32 columns.

主键组合键不能超过32列。

You cannot designate the same column or combination of columns as both a primary key and a unique key.

你不能指定一列或组合列既是主键又是唯独键。

You cannot specify a primary key when creating a subview in an inheritance hierarchy. Th e primary key can be specified only for the top-level (root) view.

创建一个继承层次结构中的子视图时,你不能指定一个主键。主键能够唯独指定的顶层(根)视图。外键约束

ALTER TABLE childTable

ADD CONSTRAINT FK_xxxx_xxx

FOREIGH KEY(columnName)

REFERENCES parentTalbe(primaryKeyColumn) [ON DELETE CASCADE|SET NULL];

ON DELETE SET NULL子句:当主表中的一行数据被删除时,Oracle系统会自动地将所有从表中依靠于它的数据记录的外键改成空值;

ON DELETE CASCADE:当主表中的一行数据被删除时,Oracle系统会自动地将所有从表中依靠于它的数据记录删除;

注:假如在外键定义中使用了ON DELETE SET NULL 或ON DELETE CASCADE,不管删除操作是在父表这一端依旧子表这一端都可不能产生违反引用完整性的问题,然而却留下了安全隐患。这两个子句要慎重使用,只有在不得已时使用,谨记谨记!!!

外键约束对DML与DDL的阻碍:

INSERT:只有操作是在子表或从表这一端时才会产生违反引用完整性约束的问题,父表则不然。

DELETE:只有操作是在父表或主表这一端时才会产生违反引用完整性约束的问题,子表则不然。

UPDATE:子表父表直截了当操作都会违反引用完整性约束。两种解决方法:

1)先更新子表的引用列为空,再更新父表的主键的列的值,然后把子表的引用列更新成新的父表的值;

2)使用ON DELETE SET NULL,先更新父表,然后将子表外键为空的记录更新为新的值。

DDL语句:DROP TABLE与TRUNCATE TABLE,操作父表,违反引用完整性约束,子表则不然。

外键约束的限制:

Restrictions on Foreign Key Constraints Foreign key constraints are subject to the following restrictions:

None of the columns in the foreign key can be of LOB, LONG, LONG RAW, VARRAY, NESTED TABLE, BFILE, REF, TIMESTAMP WITH TIME ZONE, or user-defined type. However, the primary key can con tain a column of TIMESTAMP WITH LOCAL TIME ZONE.

外键字段不能为LOB, LONG, LONG RAW, VARRAY, NESTED TABLE, BFILE, REF, TIMESTAMP WITH TIME ZON E, or user-defined type类型,主键能够包含数据类型为TIMESTAMP WITH LOCAL TIME ZONE的字段。

The referenced unique or primary key constraint on the parent table or view must already be defined.

引用唯独或主键约束,必须是父表中差不多定义的。

A composite foreign key cannot have more than 32 columns.

外键的组合列不能超过32列。

The child and parent tables must be on the same database. To enable referential integrity co nstraints across nodes of a distributed database, you must use database triggers. See CREATE TRIGGER.

字表和父表必须在同一个数据库。分布式数据库中,外键不能跨节点,但触发器能够

If either the child or parent object is a view, then the constraint is subject to all restri ctions on view constraints. See "View Constraints".

You cannot define a foreign key constraint in a CREATE TABLE statement that contains an AS s ubquery clause. Instead, you must create the table without the constraint and then add it la ter with an ALTER TABLE statement.

你不能在CREATE TABLE语句中包含AS子查询子句定义一个外键约束。相反,你必须创建一个没有约束的表,然后添加ALTER TABLE语句。

加上一些类似其它约束的限制.

条件约束

非空约束

非空约束的限制:

1:你不能在视图约束上指定字段为NULL或NOT NULL值

2:你不能指定一个对象的属性为NULL或NOT NULL。相反,而应使用的IS [NOT] NULL条件CHECK约束

条件约束中的条件与查询语句中的条件相同,然而不能包括以下内容:

1)CURRVAL,NETXTVAL,LEVEL和ROWNUM如此的伪列(PSEUDOCOLUMNS);

2)引用其它行中值的查询语句;

3)SYSDATE,USER,USERENV和UID的函数调用。

文档原文如下:

Restrictions on NOT NULL Constraints NOT NULL constraints are subject to the following restr ictions:

You cannot specify NULL or NOT NULL in a view constraint.

You cannot specify NULL or NOT NULL for an attribute of an object. Instead, use a CHECK cons traint with the IS [NOT] NULL condition.

唯独约束

唯独约束的限制:

文档原文如下:

Restrictions on Unique Constraints Unique constraints are subject to the following restricti ons:

None of the columns in the unique key can be of LOB, LONG, LONG RAW, VARRAY, NESTED TABLE, O BJECT, REF, TIMESTAMP WITH TIME ZONE, or user-defined type. However, the unique key can cont ain a column of TIMESTAMP WITH LOCAL TIME ZONE.

当字段类型为LOB、LOG、LONG RAW、 VARRAY、NESTED TABLE、OBJECT、REF、TIMESTAMP、用户定义类型时,不能在字段上定义唯独性约束。当数据类型为TIMESTAMP WITH LOCAL TIME ZONE

A composite unique key cannot have more than 32 columns.

组合字段定义的唯独索引,字段个数不能超过32个

You cannot designate the same column or combination of columns as both a primary key and a u nique key.

你不能指定同一字段或组合字段即为主键又是唯独键

You cannot specify a unique key when creating a subview in an inheritance hierarchy. The uni que key can be specified only for the top-level (root) view.

约束治理

删除约束

ALTER TABLE DM.EMP

DROP CONSTRAINT SYS_C00115525;

CASCADE子句用来删除存在有完整性关系的约束。因此你也能够用如下语法

ALTER TABLE DM.EMP

DROP UNIQUE (COMM);

添加约束

添加非空约束

ALTER TABLE DM.EMP

MODIFY(MGR CONSTRAINT CK_EMP_MGR NOT NULL);

添加其他约束

ALTER TABLE DM.EMP

ADD CONSTRAINT CK_EMP_SAL CHECK(SAL >0AND SAL <20000);

重命名约束

ALTER TABLE METAONE.T1

RENAME CONSTRAINT SYS_C0059699 TO PK_T1

约束爱护

禁用约束

ALTER TABLE表 DISABLE CONSTRAINT约束名[CASCADE];

ALTER TABLE DM.EMP

DISABLE CONSTRAINT UK_EMP_COMM;

ALTER TABLE TEST DISABLE PRIMARY KEY CASCADE;

参数CASCADE子句用来关闭存在有完整性关系的约束,比如DISABLE一个主键,假如没有CASCADE子句就会出错,现在使用CASCADE子句DISABLE主键能够将该主键与相关外键一起DISABLE掉。使用的情形:例如在数据库系统中大规模装入数据时,为了系统的效率您不得不牺牲数据的一致性来关闭一些约束,甚至删除一些约束将主表主键禁止的同时,也将禁止依靠于此主键的外键禁止了.

使用上面脚本禁用约束的时候会删除索引,假如你想禁用约束的时候,保留索引,能够使用如下脚本(因此你再启用约束的时候会重新重建索引,这对大表明显开销相当大)

ALTER TABLE DM.EMP

DISABLE CONSTRAINT UK_EMP_COMM KEEP INDEX;

启用约束

假如关闭主键约束时使用了CASCADE,现在使用ENABLE可不能将主键约束与外键约束同时打开,只能对主键约束与外键约束分别使用ENABLE CONSTRAINT 子句打开。

推迟约束

Deferring Constraint Checks

当前事务的Constraint Checks全部推迟

SET CONSTRAINTS ALL DEFERRED;

SET CONSTRAINT XXX DEFERRED;

当前会话的Constraint Checks.

ALTER SSSSION SET CONSTRAINTS ALL deferred;

ALTER SSSSION SET CONSTRAINT xxx deferred;

约束信息

SELECT*FROM DBA_CONSTRAINTS;

SELECT*FROM ALL_CONSTRAINTS;

SELECT*FROM USER_CONSTRAINTS;

SELECT*FROM DBA_CONS_COLUMNS;

SELECT*FROM ALL_CONS_COLUMNS;

SELECT *FROM USER_CONS_COLUMNS;

约束有四种状态:ENABLE、VALID、INVALID、DISABLE

约束的检查机制

IMMEDIATE语句级:Oracle performs its constraint checking after the statement has been co mpletely executed.

DEFERRED(事务级):A constraint is deferred if the system checks that it is satisfied onl y on commit. If a deferred constraint is violated, then commit causes the transaction to rol lback;(推迟到事务提交时才检查约束,慎重使用)

使用约束建议

关于约束的使用建议,网上有这么一些建议,我觉得挺有用的。大伙儿能够参考一下

1、假如在Oracle提供的几种约束和自定义的程序(触发器、过程或函数)两者之间有选择化,应尽可能使用Oracle的约束;

2、应该在创建表的时候就定义好所需的各种Oracle约束。假如没有的话,应尽可能早地加上所需要的Oracle约束,如此会使系统更可靠,更容易爱护;(那个视具体情形而言)

3、Oracle系统进行过多的约束检查会大大的降低Oracle数据库系统的效率;

oracle笔记(21)主键约束

(2019-01-05 21:43:48)

转载▼

标签:

主键约束

数据类型

数据修改

杂谈

分类:DataBase

一、主键约束:

1.创建主键的同时,定义主键约束:

语法:create table 表名(列名1 数据类型1 primary key,列名2 数据类型2,...);SQL> create table example (id number primary key, name varchar2(20));

Table created

SQL> create table example2 (id number,name varchar2(20) ,primary key (id,name));

Table created

SQL> desc example2;

Name Type Nullable Default Comments

---- ------------ -------- ------- --------

ID NUMBER

NAME VARCHAR2(20)

2.创建表后,添加主键约束:

语法:alter table 表名 add primary key (列名1,列名2,...);能够多列构成主键。如:

SQL> alter table example2 drop primary key; --删除主键

Table altered

SQL> alter table example2 add primary key (id,name); --添加主键

Table altered

3.为主键命名:

显式命名主键:

语法:alter table 表名 add constraint 约束名称 primary key (列名1,列名2 ,...);SQL> alter table example2 drop primary key;

Table altered

SQL> alter table example2 add constraint pk_example primary key (id);

再看主键约束:

SQL> select table_name,constraint_name,constraint_type,status

2 from user_constraints where table_name='EXAMPLE2';

TABLE_NAME CONSTRAINT_NAME

CONSTRAINT_TYPE STATUS

------------------------------ ------------------------------ --------------- --------

EXAMPLE2 PK_EXAMPLE

P ENABLED

4.修改主键约束:

4.1 禁用/启用主键:

alter table 表名 disable/enable primary key;

注:禁用后可插入违法数据,但有违法数据时无法启用主键,将违法数据修改才能够。SQL> alter table example2 disable primary key;

Table altered

SQL> alter table example2 enable primary key;

Table altered

4.2 重命名主键:

语法:alter table 表名 rename constraint 原主键名称 to 新主键名称

4.3 主键与索引:

当oarcle创建主键时,会自动创建一个与主键同名的索引。索引并可不能随着主键的删除而删除,也可不能为重命名而改变。

查看信息:

SQL> select index_name,table_name,column_name

2 from user_ind_columns

3 where index_name='PK_EXAMPLE';

INDEX_NAME TABLE_NAME

COLUMN_NAME

------------------------------ ------------------------------

--------------------------------------------------------------------------------

PK_EXAMPLE EXAMPLE2

ID

oracle笔记---外键约束

(2019-01-06 09:47:02)

转载▼

分类:DataBase

标签:

外键约束

级联删除

参照完整性

级联更新

杂谈

一、外键约束简介:

外键的要紧作用是保证数据的参照完整性,主表中有数据时,才能够在从表上插入相应的数据。外键支持的列,必须是主键列,以便获得唯独记录。

1.1 创建外键约束:

语法:alter table 表名 add constraint 约束名 foreign key (外键列名)references 主表(主表主键列);

如:

先创建customer表:

SQL> create table customer (

2 customer_id number primary key,

3 customer_name varchar2(20),

4 customer_phone varchar2(20),

5 customer_address varchar2(50)

6 );

Table created

再创建purchase_order表:

SQL> create table purchase_order(

2 order_id number primary key,

3 product_name varchar2(20),

4 product_quantity number,

5 customer_id number

6 );

Table created

添加外键:

SQL> alter table purchase_order

2 add constraint fk_purchase_order

3 foreign key (customer_id)

4 references customer(customer_id);

Table altered

查看外键约束信息:

SQL> select table_name ,constraint_name,constraint_type,r_constraint_name

2 from user_constraints

3 where table_name='PURCHASE_ORDER';

TABLE_NAME CONSTRAINT_NAME

CONSTRAINT_TYPE R_CONSTRAINT_NAME

------------------------------ ------------------------------ --------------- ------------------------------

PURCHASE_ORDER SYS_C005501

P

PURCHASE_ORDER FK_PURCHASE_ORDER

R SYS_C005500

二、级联更新与级联删除:

为了爱护数据的参照完整性提供2种校验类型——即时校验(immediate) 和延迟校验(deferred),默认为即时校验。延迟校验是当整个事务终止时(commit),才验证数据的完整性。

1.级联更新:

语法:

alter table 表名 add constraint 外键名称 foreign key (外键列) references 主表名(主表主键列)

deferrable initially deferred;

SQL> alter table purchase_order

2 drop constraint fk_purchase_order; --删除外键

SQL> alter table purchase_order

2 add constraint fk_purchase_order

3 foreign key (customer_id)

4 references customer (customer_id)

5 deferrable initially deferred;

Table altered

2.级联删除:

在创建外键时直截了当指定级联删除,不用在删除时声明要级联删除。

alter table 表名 add constraint 外键名称 foreign key(外键列)references 主表名(主表主键列)

on delete cascade;

SQL> alter table purchase_order

2 drop constraint fk_purchase_order

3 ;

Table altered

SQL> alter table purchase_order

2 add constraint fk_purchase_order

3 foreign key (customer_id)

4 references customer(customer_id)

5 on delete cascade;

Table altered

三、外键约束的相关操作:

1.重命名:

SQL> alter table purchase_order rename constraint fk_purchase_order to fk_po;

2.禁用/启用外键:

在数据库迁移时用到,否则会降低执行效率。

SQL> alter table purchase_order disable constraint fk_po;

Table altered

SQL> alter table purchase_order enable constraint fk_po;

Table altered

3.删除外键:

SQL> alter table purchase_order

2 drop constraint fk_po;

oracle笔记---唯独性约束

(2019-01-06 10:45:30)

转载▼

标签:

分类:DataBase

唯独性

约束

杂谈

一、创建唯独性约束:

alter table 表名 add constraint 约束名称 unique (列名1、列名2..)

查表:

SQL> desc customer;

Name Type Nullable Default Comments ---------------- ------------ -------- ------- --------

CUSTOMER_ID NUMBER

CUSTOMER_NAME VARCHAR2(20)

Y

CUSTOMER_PHONE VARCHAR2(20)

Y

CUSTOMER_ADDRESS VARCHAR2(50) Y

添加唯独性约束:

SQL> alter table customer add constraint unq_customer unique

(customer_name,customer_phone);

二、修改唯独性约束:

1.删除

alter table customer drop constraint unq_customer;

2.重命名

alter table customer rename constraint unq_customer to unq_cst;

3.禁用、启用

alter table 表名 disable/enable constraint 约束名称;

oracle笔记(24)检查约束

(2019-01-06 18:53:47)

转载▼

分类:DataBase

标签:

检查约束

相关主题