ホームページ >データベース >mysql チュートリアル >テーブル名として文字列を使用して PostgreSQL テーブルを動的に作成する方法

テーブル名として文字列を使用して PostgreSQL テーブルを動的に作成する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-24 08:22:19528ブラウズ

How to Dynamically Create PostgreSQL Tables Using a String as the Table Name?

PostgreSQL で返された文字列をテーブル名として動的に使用する

PostgreSQL では、クエリ結果からテーブル名を動的に生成する必要があるシナリオが発生する場合があります。 。これは、PL/PgSQL と組み合わせて EXECUTE ステートメントを利用することで実現できます。

これを実現するには、次の手順を実行できます。

  1. 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;
  2. フォーマット指定子の利用:
    format() 関数は %I (識別子) と %L (リテラル) を提供します。識別子とリテラルを適切に引用するための形式指定子、

    この例では、テーブル名 'backup_' が %I で囲まれています || to_char(CURRENT_DATE, 'yyyy-mm-dd') を二重引用符で囲み、識別子として正しく認識されるようにします。

  3. ステートメントを実行します:
    EXECUTE ステートメントを動的に実行します。生成された SQL ステートメントを実行します。

次のようにしますこれらの手順を実行すると、PostgreSQL のクエリから返された文字列を使用してテーブルを動的に作成できます。

以上がテーブル名として文字列を使用して PostgreSQL テーブルを動的に作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。