我有一个名为users.SYS_C00381400. 我如何找到那个约束是什么?有没有办法查询所有约束?
users.SYS_C00381400
select * from all_constraints where owner = '<NAME>' and constraint_name = 'SYS_C00381400' /
与所有数据字典视图一样,如果您只想检查当前模式,这是一个 USER_CONSTRAINTS 视图,以及一个用于管理用户的 DBA_CONSTRAINTS 视图。
约束名称的构造表示系统生成的约束名称。例如,如果我们在表声明中指定 NOT NULL。或者确实是主键或唯一键。例如:
SQL> create table t23 (id number not null primary key) 2 / Table created. SQL> select constraint_name, constraint_type 2 from user_constraints 3 where table_name = 'T23' 4 / CONSTRAINT_NAME C ------------------------------ - SYS_C00935190 C SYS_C00935191 P SQL>
'C'用于检查,'P'用于初级。
'C'
'P'
一般来说,给关系约束一个明确的名字是个好主意。例如,如果数据库为主键创建索引(如果该列尚未建立索引,它将执行此操作),它将使用约束名称 oo 命名索引。您不希望数据库中充满名为 like 的索引SYS_C00935191。
SYS_C00935191
老实说,大多数人都懒得命名 NOT NULL 约束。