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 中国語 Web サイトの他の関連記事を参照してください。