
pg_field_table 함수는 PostgreSQL에서 테이블의 필드 이름을 조회하는 함수입니다. 그러나 필드 이름이 여러 개의 스페이스바로 구분되어 있는 경우 pg_field_table 함수는 이를 분리하지 못합니다.
이러한 경우 pg_field_table 함수를 사용하여 필드 이름을 분리하는 방법은 없습니다. 그러나 PostgreSQL에서 제공하는 함수인 pg_get_identity()와 pg_get_constraintdef()와 같은 함수는 필드 이름을 분리하는 기능을 제공하지 않습니다.
필드 이름을 분리하고자 하는 경우, PostgreSQL에서 제공하는 함수 대신에 SQL 문법을 사용하여 필드 이름을 분리할 수 있습니다. 예를 들어, 다음과 같이 SQL 문법을 사용하여 필드 이름을 분리할 수 있습니다.
#hostingforum.kr
sql
SELECT
array_to_string(ARRAY["id", "name", "age"], ',') AS field_name
FROM
pg_attribute
WHERE
attrelid = '테이블명'::regclass
AND
attisdropped = FALSE;
이 SQL 문법은 pg_attribute 테이블에서 테이블의 필드 이름을 조회하고, array_to_string 함수를 사용하여 필드 이름을 분리합니다.
또한, PostgreSQL 10 버전 이상부터는 pg_get_expr 함수를 사용하여 필드 이름을 분리할 수 있습니다.
#hostingforum.kr
sql
SELECT
pg_get_expr(attrelid, attname) AS field_name
FROM
pg_attribute
WHERE
attrelid = '테이블명'::regclass
AND
attisdropped = FALSE;
이 SQL 문법은 pg_attribute 테이블에서 테이블의 필드 이름을 조회하고, pg_get_expr 함수를 사용하여 필드 이름을 분리합니다.
이러한 방법을 사용하여 필드 이름을 분리할 수 있습니다.
2025-04-24 16:03