PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да използвам динамични имена на колони в оператор UPDATE или SELECT във функция?

В UPDATE оператор в PL/pgSQL, името на таблицата трябва да бъде дадено като литерал. Ако искате да зададете динамично името на таблицата и колоните, трябва да използвате EXECUTE команда и поставете заедно низа на заявката:

EXECUTE 'UPDATE ' || quote_ident(r.relname) ||
       ' SET ' || quote_ident(r.cols_list[1]) || ' = $1, ' || 
                  quote_ident(r.cols_list[2]) || ' = $2' ||
       ' WHERE ' || quote_ident(r.cols_list[1]) || ' = $3 AND ' ||
                    quote_ident(r.cols_list[2]) || ' = $4'
USING ncicd9, ncdesc, ocicd9, ocdesc;

USING клаузата може да се използва само за заместване на стойности на данни, както е показано по-горе.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Има ли начин да деактивирате актуализациите/изтриванията, но все пак да позволите на тригери да ги изпълняват?

  2. Вземете името на изходната таблица на реда, когато отправяте заявка към родителя, от който той наследява

  3. Как да одитирате PostgreSQL база данни

  4. Изберете (извлечете) всички записи от множество схеми с помощта на Postgres

  5. jsonb срещу jsonb[] за множество адреси за клиент