반응형
Oracle이 제약 조건을 발견하다
저는 '나'라는 제약이 있습니다.users.SYS_C00381400
그 제약조건은 어떻게 찾을 수 있습니까?모든 제약을 문의할 수 있는 방법이 있습니까?
select * from all_constraints
where owner = '<NAME>'
and constraint_name = 'SYS_C00381400'
/
모든 데이터 사전 보기와 마찬가지로 관리 사용자의 현재 스키마 및 DBA_CONSTRANS 보기를 확인하는 경우 USER_CONSTRANS 보기입니다.
제약 조건 이름 구성은 시스템에서 생성된 제약 조건 이름을 나타냅니다.예를 들어 테이블 선언에서 NOT NULL을 지정한 경우.또는 실제로 기본 키 또는 고유한 키입니다.예를 들어 다음과 같습니다.
SQL> create table t23 (id number not null primary key)
2 /
Table created.
SQL> select constraint_name, constraint_type
2 from user_constraints
3 where table_name = 'T23'
4 /
CONSTRAINT_NAME C
------------------------------ -
SYS_C00935190 C
SYS_C00935191 P
SQL>
'C'
확인을 위해'P'
프라이머리용입니다.
일반적으로 관계형 제약조건에 명시적인 이름을 붙이는 것이 좋습니다.예를 들어 데이터베이스가 기본 키에 대한 인덱스를 생성하는 경우(이 열이 아직 인덱싱되지 않은 경우 해당 인덱스에 대해 수행됨)에는 제약 조건 이름 o가 사용됩니다.다음과 같은 이름의 인덱스로 가득 찬 데이터베이스를 원하지 않습니다.SYS_C00935191
.
솔직히 말해서 대부분의 사람들은 NULL 제약조건에 이름을 붙이지 않는다.
자세한 설명(어떤 테이블/컬럼이 어떤 테이블/컬럼을 참조하는지)을 얻으려면 다음 쿼리를 실행합니다.
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";
이게 제일 도움이 될 것 같아요
select * from ALL_CONS_COLUMNS
where constraint_name = 'SYS_C00381400';
테이블 이름과 열 이름을 모두 반환합니다.
OWNER,CONSTRAINT_NAME,TABLE_NAME,COLUMN_NAME,POSITION
MY_OWNER,SYS_C00381400,MY_TABLE,MY_COLUMN,1
언급URL : https://stackoverflow.com/questions/2095415/oracle-find-a-constraint
반응형
'programing' 카테고리의 다른 글
\d는 grep의 기본 표현식에서는 지원되지 않습니까? (0) | 2023.04.11 |
---|---|
MongoDB, 어레이에서 객체 삭제 (0) | 2023.04.06 |
아이디 대신 우편명으로 우편물을 받다 (0) | 2023.04.06 |
Springboot / Angular 2 - HTML5 URL 처리 방법 (0) | 2023.04.06 |
TypeScript의 '확장'과 '실장'의 차이점은 무엇입니까? (0) | 2023.04.06 |