PostgreSQL은 런타임 값을 기반으로 테이블 이름을 동적으로 생성하는 고급 기능을 제공합니다. 동적 이름을 가진 테이블을 생성하려면 DO 블록이나 PL/PgSQL 함수 내에서 PL/PgSQL EXECUTE 문을 활용해야 합니다.
EXECUTE 문을 사용하면 동적 SQL 명령을 실행할 수 있습니다. 반환된 문자열에서 테이블 이름을 구성합니다. 다음 예를 고려하십시오.
SELECT 'backup_' || TO_CHAR(CURRENT_DATE, 'yyyy-mm-dd')
이 쿼리는 원하는 테이블 이름을 나타내는 문자열을 반환합니다. 이 문자열을 사용하여 테이블을 생성하려면 다음 구문을 사용할 수 있습니다.
DO $$ BEGIN EXECUTE format('CREATE TABLE %I AS SELECT * FROM backup', 'backup_' || to_char(CURRENT_DATE, 'yyyy-mm-dd')); END; $$ LANGUAGE plpgsql;
이 코드에서 format(...) 함수는 테이블 이름의 적절한 인용을 보장합니다. %I 형식 지정자는 식별자를 자동으로 인용하고 format(...) 구문은 리터럴을 처리합니다.
리터럴의 경우 %L과 함께 format(...) 대신 EXECUTE ... USING을 사용하는 것이 좋습니다. . 그러나 테이블/열 이름과 같은 식별자의 경우 %I 패턴은 수동 인용에 대한 간결하고 우아한 대안을 제공합니다.
EXECUTE 문과 PL/PgSQL을 사용하면 반환된 값을 기반으로 테이블 이름을 동적으로 생성할 수 있습니다. , PostgreSQL 애플리케이션의 유연성과 자동화가 향상됩니다.
위 내용은 PostgreSQL에서 동적으로 명명된 테이블을 어떻게 생성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!