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

PL/pgSQLで行型変数を宣言します

    1つの方法:record 変数:

    DO $$
    DECLARE
       _rec record;
    BEGIN
    SELECT INTO _rec
                id, name, surname FROM t WHERE id = ?;
    END $$;
    

    recordの構造に注意してください タイプは割り当てられるまで未定義です。したがって、それを行う前に列(フィールド)を参照することはできません。

    別の方法:複数のスカラー変数を割り当てる:

    DO $$
    DECLARE
       _id int;
       _name text;
       _surname text;
    BEGIN
    SELECT INTO _id, _name, _surname
                 id,  name,  surname FROM t WHERE id = ?;
    END $$;
    

    最初の例として:%ROWTYPE Postgresでは単なるノイズです。 ドキュメント

    だから:

    DO $$
    DECLARE
       my_data t;  -- table name serves as type name, too. 
    BEGIN
       SELECT INTO my_data  * FROM t WHERE id = ?;
    END $$;
    



    1. 2012年のレコードを取得するための休止状態の基準

    2. MariaDBで英数字のみを含む行を返す2つの方法

    3. HerokuはDjangoのモデルを移行しません

    4. Ectoクエリ-日付+Postgres間隔+クエリ補間