programing

Oracle SQL의 테이블에 대한 모든 제약 조건 이름 표시

minimums 2023. 3. 4. 14:25
반응형

Oracle SQL의 테이블에 대한 모든 제약 조건 이름 표시

Oracle SQL에서 생성한 여러 테이블에 대한 각 제약 조건의 이름을 정의했습니다.

문제는 특정 테이블의 컬럼에 대한 제약을 해제하려면 각 제약조건에 대해 제공한 이름을 알아야 하는데, 이 이름을 잊어버렸습니다.

테이블의 각 열에 대해 지정한 제약 조건의 이름을 모두 나열하려면 어떻게 해야 합니까?

이를 위한 SQL 문이 있습니까?

데이터 딕셔너리, 특히 데이터 딕셔너리를 쿼리해야 합니다.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>'
SELECT * FROM USER_CONSTRAINTS

도움이 될 수도 있습니다.

SELECT constraint_name, constraint_type, column_name
from user_constraints natural join user_cons_columns
where table_name = "my_table_name";

건배.

select constraint_name,constraint_type 
from user_constraints
where table_name = 'YOUR TABLE NAME';

주의: 테이블 이름은 대문자로 입력해야 합니다.

테이블 이름을 모르실 수도 있으니까

select constraint_name,constraint_type,table_name 
from user_constraints;

엔터프라이즈 데이터베이스에는 사용자가 여러 명 있는 경우가 많은데, 그 중 한 명이 제대로 되어 있지 않습니다.

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';
select a.constraint_name   as f_key,
   a.owner             as f_owner,
   a.table_name        as f_table,
   a.r_constraint_name as p_key,
   a.r_owner           as p_owner,
   b.table_name        as p_table

all_constraints에서 a.r_constraint_name = b.constraint_name의 내부 결합 all_constraints b

MySQL에서 이를 쉽게 수행할 수 있는 방법은 다음과 같습니다.

SHOW INDEXES IN <table-name>;

제약조건의 주요 이름이 표시됩니다.

언급URL : https://stackoverflow.com/questions/11879217/display-names-of-all-constraints-for-a-table-in-oracle-sql

반응형