Как вы используете переменные сценария в psql?

Последнее слово о переменных psql PSQL:

  1. Они не расширяются, если psql вы заключаете их в одинарные variable кавычки в операторе SQL. Таким pgsql образом, это не работает:

    SELECT * FROM foo WHERE bar = ':myvariable'
    
  2. Чтобы variable преобразовать в строковый variables литерал в операторе SQL, вы vars должны включить кавычки в sql-query набор переменных. Однако sql-statement значение переменной уже должно sql-statement быть заключено в кавычки, а psql это значит, что вам нужен sql-select второй набор кавычек, а внутренний sql-select набор должен быть экранирован. Таким postgresql образом, вам нужно:

    \set myvariable '\'somestring\''  
    SELECT * FROM foo WHERE bar = :myvariable
    

    РЕДАКТИРОВАТЬ: начиная variables с PostgreSQL 9.1 вместо этого postgres можно написать:

    \set myvariable somestring
    SELECT * FROM foo WHERE bar = :'myvariable'
    

sql

postgresql

variables

psql

2022-10-22T10:05:38+00:00