반응형
Oracle에서 기본 키 열을 얻는 방법
기본 키 열의 이름을 알아야 합니다.
입력에는 테이블 이름밖에 없습니다.
SELECT cols.table_name, cols.column_name, cols.position, cons.status, cons.owner
FROM all_constraints cons, all_cons_columns cols
WHERE cols.table_name = 'TABLE_NAME'
AND cons.constraint_type = 'P'
AND cons.constraint_name = cols.constraint_name
AND cons.owner = cols.owner
ORDER BY cols.table_name, cols.position;
'탭'을 확인합니다.Oracle은 테이블 이름을 대문자로 저장하므로 LE_NAME'은 대문자로 표시됩니다.
'리치'의 대답과 같지만 좀 더 간결하다.
사용자 제약 조건만 쿼리
SELECT column_name FROM all_cons_columns WHERE constraint_name = ( SELECT constraint_name FROM user_constraints WHERE UPPER(table_name) = UPPER('tableName') AND CONSTRAINT_TYPE = 'P' );
모든 제약조건에 대한 쿼리
SELECT column_name FROM all_cons_columns WHERE constraint_name = ( SELECT constraint_name FROM all_constraints WHERE UPPER(table_name) = UPPER('tableName') AND CONSTRAINT_TYPE = 'P' );
이 코드를 사용해 보십시오.여기서 테스트라고 불리는 Oracle의 프라이머리 키 컬럼을 취득하고 쿼리하기 위한 테이블을 만듭니다.
create table test
(
id int,
name varchar2(20),
city varchar2(20),
phone int,
constraint pk_id_name_city primary key (id,name,city)
);
SELECT cols.table_name, cols.column_name, cols.position, cons.status, cons.owner FROM all_constraints cons, all_cons_columns cols WHERE cols.table_name = 'TEST' AND cons.constraint_type = 'P' AND cons.constraint_name = cols.constraint_name AND cons.owner = cols.owner ORDER BY cols.table_name, cols.position;
Select constraint_name,constraint_type from user_constraints where table_name** **= ‘TABLE_NAME’ ;
(프라이머리 키가 리스트 되고 나서)
Select column_name,position from user_cons_columns where constraint_name=’PK_XYZ’;
(컬럼이 표시됩니다.여기서 PK_XYZ는 프라이머리 키 이름입니다)
다음 스크립트를 findPK.sql과 같은 것으로 저장합니다.
set verify off
accept TABLE_NAME char prompt 'Table name>'
SELECT cols.column_name
FROM all_constraints cons NATURAL JOIN all_cons_columns cols
WHERE cons.constraint_type = 'P' AND table_name = UPPER('&TABLE_NAME');
그런 다음 다음을 사용하여 호출할 수 있습니다.
@findPK
언급URL : https://stackoverflow.com/questions/9016578/how-to-get-primary-key-column-in-oracle
반응형
'programing' 카테고리의 다른 글
$before_widget과 $after_widget의 의미는 무엇입니까? (0) | 2023.04.01 |
---|---|
lessphp 치명적 오류: 로드 오류: wordpress 웹 사이트를 새 서버로 마이그레이션한 후 오류를 찾지 못했습니다. (0) | 2023.03.31 |
React.js: 페이지 맨 위로 스크롤하는 것을 중지합니다. (0) | 2023.03.31 |
WP cron 이벤트가 발생하지만 디버깅에서 중단점에 도달하지 않음 (0) | 2023.03.31 |
wordpress에서 querystring 매개 변수 값을 가져오는 중 (0) | 2023.03.31 |