Sql Oracle查找约束
我有一个名为Sql Oracle查找约束,sql,oracle,constraints,Sql,Oracle,Constraints,我有一个名为users.SYS\u C00381400的约束。我如何找到约束是什么?有没有办法查询所有约束 select * from all_constraints where owner = '<NAME>' and constraint_name = 'SYS_C00381400' / 检查用'C',主要检查用'p' 通常,给关系约束一个明确的名称是一个好主意。例如,如果数据库为主键创建一个索引(如果该列还没有索引,它将这样做),它将使用约束名称oo命名索引。您不希望数据库中
users.SYS\u C00381400
的约束。我如何找到约束是什么?有没有办法查询所有约束
select * from all_constraints
where owner = '<NAME>'
and constraint_name = 'SYS_C00381400'
/
检查用'C'
,主要检查用'p'
通常,给关系约束一个明确的名称是一个好主意。例如,如果数据库为主键创建一个索引(如果该列还没有索引,它将这样做),它将使用约束名称oo命名索引。您不希望数据库中充满名为SYS\u C00935191的索引
老实说,大多数人并不费心命名非空约束 要获得更详细的描述(哪个表/列引用哪个表/列),可以运行以下查询:
SELECT uc.constraint_name||CHR(10)
|| '('||ucc1.TABLE_NAME||'.'||ucc1.column_name||')' constraint_source
, 'REFERENCES'||CHR(10)
|| '('||ucc2.TABLE_NAME||'.'||ucc2.column_name||')' references_column
FROM user_constraints uc ,
user_cons_columns ucc1 ,
user_cons_columns ucc2
WHERE uc.constraint_name = ucc1.constraint_name
AND uc.r_constraint_name = ucc2.constraint_name
AND ucc1.POSITION = ucc2.POSITION -- Correction for multiple column primary keys.
AND uc.constraint_type = 'R'
AND uc.constraint_name = 'SYS_C00381400'
ORDER BY ucc1.TABLE_NAME ,
uc.constraint_name;
来自。也许这会有所帮助
SELECT constraint_name, constraint_type, column_name
from user_constraints natural join user_cons_columns
where table_name = "my_table_name";
如何知道约束?users.SYS_C00381400约束名称显示在错误消息中。
SELECT constraint_name, constraint_type, column_name
from user_constraints natural join user_cons_columns
where table_name = "my_table_name";