sql >> データベース >  >> RDS >> PostgreSQL

PL/pgSQL行配列

    現代のPostgreSQLを使用すると、このような機能を簡素化できます。
    テストのセットアップ:

    CREATE TABLE tbl1 (id int, value text);
    

    この場合(型がテーブルの行に基づいている場合)、型を明示的に作成する必要はありません。型はすべてのテーブルに対して暗黙的に作成されます。
    関数:

    CREATE FUNCTION f_insert_rows_into_tbl1(tbl1[])
      RETURNS VOID AS
    $BODY$
        INSERT INTO tbl1 (id,value)
        SELECT (a).*
        FROM   (SELECT unnest($1) AS a) x;
    $BODY$ LANGUAGE sql;
    

    電話:

    SELECT f_insert_rows_into_tbl1('{"(1,foo)","(2,bar)"}');
    

    行の配列の入力構文に注意してください!



    1. Dockerを使用したnodeJSでのPostgresのECONNREFUSED

    2. ORA-24247:ネットワーク・アクセスがアクセス制御リスト(ACL)によって拒否されました

    3. アクセス拒否;この操作にはSUPER特権(少なくとも1つ)が必要です

    4. mysqlにvarcharとして10進値を保存するのは良いですか?