PostgreSQL では、クエリ結果からテーブル名を動的に生成する必要があるシナリオが発生する場合があります。 。これは、PL/PgSQL と組み合わせて EXECUTE ステートメントを利用することで実現できます。
これを実現するには、次の手順を実行できます。
DO ブロックまたは PL/PgSQL 内の動的 SQL ステートメント関数:
DO $$ BEGIN EXECUTE format( 'CREATE TABLE %I AS SELECT * FROM backup', 'backup_' || to_char(CURRENT_DATE, 'yyyy-mm-dd') ); END; $$ LANGUAGE plpgsql;
フォーマット指定子の利用:
format() 関数は %I (識別子) と %L (リテラル) を提供します。識別子とリテラルを適切に引用するための形式指定子、
この例では、テーブル名 'backup_' が %I で囲まれています || to_char(CURRENT_DATE, 'yyyy-mm-dd') を二重引用符で囲み、識別子として正しく認識されるようにします。
次のようにしますこれらの手順を実行すると、PostgreSQL のクエリから返された文字列を使用してテーブルを動的に作成できます。
以上がテーブル名として文字列を使用して PostgreSQL テーブルを動的に作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。