>데이터 베이스 >MySQL 튜토리얼 >PostgreSQL에서 동적 값을 테이블 이름으로 사용하는 방법은 무엇입니까?

PostgreSQL에서 동적 값을 테이블 이름으로 사용하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-27 06:02:14445검색

How to Use Dynamic Values as Table Names in PostgreSQL?

PostgreSQL에서 동적 값을 테이블 이름으로 사용

데이터베이스 작업을 처리할 때 동적 값을 테이블 이름으로 사용해야 하는 경우가 많습니다. 이는 쿼리 실행 중에 테이블 이름이 결정되는 동적 SQL을 통해 달성할 수 있습니다.

PostgreSQL에서는 DO 블록 또는 PL/PgSQL 함수 내의 PL/PgSQL EXECUTE 문을 사용하여 동적 SQL을 구현할 수 있습니다. 일반 SQL은 동적 SQL을 지원하지 않습니다.

예를 들어 쿼리 결과를 사용하여 후속 쿼리에 대한 테이블 이름을 동적으로 결정하는 목표를 생각해 보세요.

쿼리 테이블 이름 얻기:

SELECT 'backup_' || TO_CHAR(CURRENT_DATE,'yyyy-mm-dd')

원하는 후속 쿼리:

CREATE TABLE (SELECT 'backup_' || TO_CHAR(CURRENT_DATE,'yyyy-mm-dd')) AS * SELECT FROM backup

PL/PgSQL을 사용하는 솔루션 EXECUTE:

DO
$$
BEGIN
EXECUTE format('CREATE TABLE %I AS SELECT * FROM backup', 'backup_' || to_char(CURRENT_DATE,'yyyy-mm-dd'));
END;
$$
LANGUAGE plpgsql;

설명:

format(...) 함수는 동적 SQL 문을 구성하는 데 사용됩니다. %I 형식 지정자는 테이블/열 이름의 올바른 인용을 보장합니다.

참고:

리터럴 값의 경우 EXECUTE ... USING 대신 EXECUTE ... USING을 사용하는 것이 좋습니다. 형식(...)을 %L로 지정합니다. 그러나 테이블 이름과 같은 식별자의 경우 %I 패턴 형식이 quote_ident를 사용하는 것보다 편리한 대안입니다.

위 내용은 PostgreSQL에서 동적 값을 테이블 이름으로 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.