
pg_field_table 함수는 PostgreSQL에서 테이블의 필드 정보를 가져올 수 있는 유용한 함수입니다. 이 함수는 테이블의 필드 이름, 데이터 타입, 길이, 기본값, NULL 여부, 인덱스 여부, 고유 여부, 자동 증가 여부 등에 대한 정보를 제공합니다.
pg_field_table 함수의 사용법은 다음과 같습니다.
#hostingforum.kr
sql
SELECT * FROM pg_field_table('스키마명', '테이블명');
스키마명과 테이블명을 지정하여 테이블의 필드 정보를 가져올 수 있습니다.
필드 정보의 속성을 가져올 수 있는 방법은 다음과 같습니다.
* 데이터 타입: pg_attribute.data_type
* 길이: pg_attribute.atttypmod (길이 정보가 있는 경우)
* 기본값: pg_attrdef.adsrc (기본값이 설정된 경우)
* NULL 여부: pg_attribute.attisdropped (NULL 여부가 설정된 경우)
* 인덱스 여부: pg_index.indisprimary (인덱스 여부가 설정된 경우)
* 고유 여부: pg_constraint.conname (고유 제약 조건이 설정된 경우)
* 자동 증가 여부: pg_attrdef.adsrc (자동 증가가 설정된 경우)
예를 들어, 다음 코드를 사용하여 테이블의 필드 정보를 가져올 수 있습니다.
#hostingforum.kr
sql
SELECT
pg_attribute.attname AS 필드명,
pg_attribute.data_type AS 데이터_타입,
pg_attribute.atttypmod AS 길이,
pg_attrdef.adsrc AS 기본값,
pg_attribute.attisdropped AS NULL_여부,
pg_index.indisprimary AS 인덱스_여부,
pg_constraint.conname AS 고유_제약_조건,
pg_attrdef.adsrc AS 자동_증가 여부
FROM
pg_field_table('public', '테이블명')
JOIN
pg_attribute ON pg_field_table('public', '테이블명').attrelid = pg_attribute.attrelid
JOIN
pg_attrdef ON pg_field_table('public', '테이블명').attrelid = pg_attrdef.adsrcid
JOIN
pg_index ON pg_field_table('public', '테이블명').attrelid = pg_index.indrelid
JOIN
pg_constraint ON pg_field_table('public', '테이블명').attrelid = pg_constraint.conrelid;
이 코드는 테이블의 필드 정보를 가져와 필드 이름, 데이터 타입, 길이, 기본값, NULL 여부, 인덱스 여부, 고유 제약 조건, 자동 증가 여부를 포함한 필드 정보를 제공합니다.
2025-06-26 08:17