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

Postgres UPSERT menggunakan kembali nilai kolom dari INSERT pada UPDATE

Ya, ada tabel khusus EXCLUDED untuk tujuan:

INSERT INTO tbl (id, data)
VALUES (1, '<data_string>') 
ON CONFLICT (id) DO UPDATE SET data = EXCLUDED.data;

Seperti penjelasan manual :

Bekerja untuk INSERT multi-baris juga:

INSERT INTO tbl (id, data)
VALUES (1, '<data_string1>') 
     , (2, '<data_string2>') 
     , (3, '<data_string3>') 
ON CONFLICT (id) DO UPDATE
SET data = EXCLUDED.data;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menerapkan NULLS PERTAMA di Amazon Redshift

  2. Tipe data JDBC, Elasticsearch dan Postgresql Json

  3. Menghubungkan postgresql dengan sqlalchemy

  4. Bagaimana cara menjalankan aplikasi python dan postgres dalam satu wadah buruh pelabuhan?

  5. PostgreSQL:Perbandingan string yang tidak peka huruf besar-kecil