답변:
테이블 열 및 해당 제약 조건을 보려면 데이터 사전 , 특히 USER_CONS_COLUMNS
뷰 를 쿼리해야합니다 .
SELECT *
FROM user_cons_columns
WHERE table_name = '<your table name>';
참고로, 소문자 이름 (큰 따옴표 사용)으로 테이블을 특별히 생성하지 않은 경우 테이블 이름은 기본적으로 대문자로 설정되므로 쿼리에서 그렇게하는지 확인하십시오.
그런 다음 제약 조건 자체에 대한 자세한 정보를 USER_CONSTRAINTS
보려면 뷰를 쿼리하십시오 .
SELECT *
FROM user_constraints
WHERE table_name = '<your table name>'
AND constraint_name = '<your constraint name>';
테이블이 기본 스키마가 아닌 스키마에있는 경우 뷰를 다음으로 대체해야 할 수 있습니다.
all_cons_columns
과
all_constraints
where 절에 추가 :
AND owner = '<schema owner of the table>'
owner
모두에서 필드 (사용자 | 모든 | DBA) _constraints 및 (사용자 | 모든 | DBA) _cons_columns는 제약 조건의 소유자,하지 (Oracle 설명서 당) 테이블의 소유자입니다. 테이블 소유자는 이러한보기에서 사용 가능한 필드가 아닙니다. 이것은 제약 소유자와 테이블 소유자가 동일해야한다는 것을 의미합니까?
종종 엔터프라이즈 데이터베이스에는 여러 사용자가 있으며 올바른 사용자가 아닙니다.
SELECT * FROM ALL_CONSTRAINTS WHERE table_name = 'YOUR TABLE NAME' ;
에서 선택 Oracle 설명서
아래 두 명령 중 하나를 사용하십시오. 모든 것은 대문자 여야합니다. 테이블 이름은 따옴표로 묶어야합니다.
--SEE THE CONSTRAINTS ON A TABLE
SELECT COLUMN_NAME, CONSTRAINT_NAME FROM USER_CONS_COLUMNS WHERE TABLE_NAME = 'TBL_CUSTOMER';
--OR FOR LESS DETAIL
SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE TABLE_NAME = 'TBL_CUSTOMER';
USER_CONS_COLUMNS