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

psqlでスクリプト変数をどのように使用しますか?

    Postgres変数は、\ setコマンドを使用して作成されます(例:...

    )。
    \set myvariable value
    

    ...そして、たとえば...

    のように置き換えることができます
    SELECT * FROM :myvariable.table1;
    

    ...または...

    SELECT * FROM table1 WHERE :myvariable IS NULL;
    

    編集:psql 9.1以降、変数は次のように引用符で囲むことができます:

    \set myvariable value 
    
    SELECT * FROM table1 WHERE column1 = :'myvariable';
    

    古いバージョンのpsqlクライアントの場合:

    ...変数を条件付き文字列クエリの値として使用する場合(...

    など)
    SELECT * FROM table1 WHERE column1 = ':myvariable';
    

    ...上記は機能しないため、変数自体に引用符を含める必要があります。代わりに、変数をそのように定義してください...

    \set myvariable 'value'
    

    しかし、私のように、既存の変数から文字列を作成したいという状況に遭遇した場合、そのトリックはこれであることがわかりました...

    \set quoted_myvariable '\'' :myvariable '\''
    

    これで、同じ文字列の引用符で囲まれた変数と引用符で囲まれていない変数の両方ができました。そして、あなたはこのようなことをすることができます....

    INSERT INTO :myvariable.table1 SELECT * FROM table2 WHERE column1 = :quoted_myvariable;
    


    1. SQLDATEから月と年のみを取得する

    2. PostgreSQLテーブルの行のカウントを高速化するにはどうすればよいですか?

    3. SQLキャスト日時

    4. オフセットとROW_NUMBER()