如何检查Oracle SQL上的检查约束分配的规则?[副本]

f87krz0w  于 2023-04-29  发布在  Oracle
关注(0)|答案(2)|浏览(102)

此问题已在此处有答案

How do I find the definition of a named constraint in Oracle?(4个答案)
昨天关门了。
嗨,目前我得到唯一的约束错误。当我检查表时,有几列被分配了检查约束,但我不知道分配给这些检查约束的规则是什么。是否有任何我可以检查什么规则已分配给那些检查约束?
谢谢你

xghobddn

xghobddn1#

我不知道**分配给这些检查约束的规则是什么
这些存储在user_constraints视图的search_condition列中。

SQL> create table test
  2    (id      number constraint pk_test primary key,
  3     deptno  number constraint fk_test_dept references dept (deptno),
  4     salary  number constraint ch_sal check (salary > 100)
  5    );

Table created.

SQL> select constraint_name, constraint_type, search_condition
  2  from user_constraints
  3  where table_name = 'TEST';

CONSTRAINT_NAME                C SEARCH_CONDITION
------------------------------ - ----------------------------------------
CH_SAL                         C salary > 100            --> here it is
PK_TEST                        P
FK_TEST_DEPT                   R

SQL>
vojdkbi0

vojdkbi02#

你可以试试这个:
创建表语句:

CREATE TABLE your_table_name (
  id NUMBER(10),
  name VARCHAR2(50),
  age NUMBER(3),
  CONSTRAINT age_gt_zero CHECK (age > 0)
);

查询:

SELECT CONSTRAINT_NAME,CONSTRAINT_NAME
FROM USER_CONSTRAINTS
WHERE TABLE_NAME = 'YOUR_TABLE_NAME'
AND CONSTRAINT_TYPE = 'C';

输出:
| 约束名称|约束名称|
| --------------|--------------|
| 年龄_GT_零|年龄_GT_零|
fiddle

相关问题