CREATE TABLE dept (
deptno NUMBER(3) PRIMARY KEY,
dname VARCHAR2(15), loc VARCHAR2(15), CONSTRAINT dname_ukey UNIQUE (dname, loc),
CONSTRAINT loc_check1
CHECK (loc IN ('NEW YORK', 'BOSTON', 'CHICAGO')));
CREATE TABLE emp (
empno NUMBER(5) PRIMARY KEY,
ename VARCHAR2(15) NOT NULL,
job VARCHAR2(10),
mgr NUMBER(5) CONSTRAINT mgr_fkey
REFERENCES emp ON DELETE CASCADE,
hiredate DATE,
sal NUMBER(7,2),
comm NUMBER(5,2),
deptno NUMBER(3) NOT NULL
CONSTRAINT dept_fkey REFERENCES dept); Example 1 Listing All of Your Accessible Constraints
The following query lists all constraints defined on all tables accessible to you, the user:
SELECT constraint_name, constraint_type, table_name,
r_constraint_name
FROM user_constraints;Considering the example statements at the beginning of this section, a list similar to the one below is returned:
CONSTRAINT_NAME C TABLE_NAME R_CONSTRAINT_NAME --------------- - ----------- ------------------ SYS_C00275 P DEPT DNAME_UKEY U DEPT LOC_CHECK1 C DEPT SYS_C00278 C EMP SYS_C00279 C EMP SYS_C00280 P EMP MGR_FKEY R EMP SYS_C00280 DEPT_FKEY R EMP SYS_C00275
Notice the following:
| Constraint Type | Character |
| PRIMARY KEY | P |
| UNIQUE KEY | U |
| FOREIGN KEY | R |
| CHECK, NOT NULL | C |
Example 2 Distinguishing NOT NULL Constraints from CHECK Constraints
In the previous example, several constraints are listed with a constraint type of "C". To distinguish which constraints are NOT NULL constraints and which are CHECK constraints in the EMP and DEPT tables, issue the following query:
SELECT constraint_name, search_condition
FROM user_constraints
WHERE (table_name = 'DEPT' OR table_name = 'EMP') AND
constraint_type = 'C';Considering the example CREATE TABLE statements at the beginning of this section, a list similar to the one below is returned:
CONSTRAINT_NAME SEARCH_CONDITION
--------------- ----------------------------------------
LOC_CHECK1 loc IN ('NEW YORK', 'BOSTON', 'CHICAGO')
SYS_C00278 ENAME IS NOT NULL
SYS_C00279 DEPTNO IS NOT NULLNotice the following:
The following query lists all columns that constitute the constraints defined on all tables accessible to you, the user:
SELECT constraint_name, table_name, column_name FROM user_cons_columns;
Considering the example statements at the beginning of this section, a list similar to the one below is returned:
CONSTRAINT_NAME TABLE_NAME COLUMN_NAME --------------- ----------- --------------- DEPT_FKEY EMP DEPTNO DNAME_UKEY DEPT DNAME DNAME_UKEY DEPT LOC LOC_CHECK1 DEPT LOC MGR_FKEY EMP MGR SYS_C00275 DEPT DEPTNO SYS_C00278 EMP ENAME SYS_C00279 EMP DEPTNO SYS_C00280 EMP EMPNO