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

UPDATE pernyataan dengan banyak gabungan di PostgreSQL

Sama dengan UPDATE yang valid pernyataan di Postgres:

UPDATE incode_warrants iw
SET    warn_docket_no = iv.viol_docket_no
FROM   incode_warrantvs  iwvs
JOIN   incode_violations iv ON iv.viol_citation_no = iwvs.warnv_citation_no
                           AND iv.viol_viol_no = iwvs.warnv_viol_no
WHERE  iw.warn_rid = iwvs.warnv_rid;
-- AND iw.warn_docket_no IS DISTINCT FROM iv.viol_docket_no -- see below

Anda tidak bisa hanya menggunakan alias tabel di FROM klausa sebagai tabel target dalam UPDATE ayat. Tabel (satu!) yang akan diperbarui muncul tepat setelah UPDATE kata kunci (jika kita mengabaikan kemungkinan ONLY kata kunci di antara). Anda dapat menambahkan alias di sana jika Anda mau. Itulah penyebab langsung dari pesan kesalahan Anda, tetapi masih ada lagi.

Kolom yang akan diperbarui selalu dari satu tabel yang akan diperbarui dan tidak dapat memenuhi syarat tabel.

Anda tidak perlu mengulang tabel target di FROM klausa - kecuali untuk kasus khusus seperti ini:

Penambahan opsional ini dapat menghindari biaya yang tidak berguna dengan menekan pembaruan yang tidak mengubah apa pun:

AND iw.warn_docket_no IS DISTINCT FROM iv.viol_docket_no

Lihat:

Selengkapnya di manual bagus tentang UPDATE .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cara membuat pemicu acara untuk membuat tabel atau memilih menjadi

  2. konversikan string tanggal apa pun ke stempel waktu tanpa zona waktu

  3. Vertx JDBC client queryWithParams - bagaimana cara menambahkan daftar?

  4. Menginstal PostgreSQL di Ubuntu untuk Ruby on Rails

  5. Optimalkan penghapusan Postgres dari catatan yatim