PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara menggunakan nama kolom dinamis dalam pernyataan UPDATE atau SELECT dalam suatu fungsi?

Dalam UPDATE pernyataan di PL/pgSQL, nama tabel harus diberikan sebagai literal. Jika Anda ingin mengatur nama tabel dan kolom secara dinamis, Anda harus menggunakan EXECUTE perintah dan rekatkan string kueri bersama-sama:

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 klausa hanya dapat digunakan untuk mengganti nilai data, seperti yang ditunjukkan di atas.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL + Hibernate + Spring otomatis membuat database

  2. Bagaimana make_date() Bekerja di PostgreSQL

  3. Diindeks ORDER BY dengan LIMIT 1

  4. OFFSET vs. ROW_NUMBER()

  5. Bisakah PostgreSQL mengindeks kolom array?