2

当我创建列不为空的表时,Oracle 会自动创建不为空的检查约束:像这样(来自 user_constraints 视图的查询)

NAME                           TYPE SEARCH_CONDITION
------------------------------ ---- ---------------------------------------
SYS_C0036357                   C    "SUPPLIER_ID" IS NOT NULL
SYS_C0036358                   C    "SUPPLIER_NAME" IS NOT NULL

那么,有什么方法可以知道 Oracle(Auto) 创建的约束还是用户创建的约束。

谢谢你。

4

1 回答 1

7

您可以查看表中的GENERATED字段user_constraints(或all_constraints)。

create table t (a number not null, constraint t_pk primary key(a));
select table_name, constraint_name, generated
 from user_constraints
 where table_name = 'T';

给出:

T | CONSTRAINT. | GENERATED
----------------------------
T | SYS_C008425 | GENERATED NAME
T | T_PK        | USER NAME
于 2012-09-28T08:47:30.980 回答