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

Bagaimana cara upser di Postgres pada konflik di salah satu dari 2 kolom?

Ya, dan perilaku ini adalah default. Setiap pelanggaran batasan unik merupakan konflik dan kemudian UPDATE dilakukan jika ON CONFLICT DO UPDATE ditentukan. INSERT pernyataan hanya dapat memiliki satu ON CONFLICT klausa, tetapi conflict_target dari klausa tersebut dapat menentukan beberapa nama kolom yang masing-masing harus memiliki indeks, seperti UNIQUE paksaan. Namun, Anda terbatas pada satu conflict_action dan Anda tidak akan memiliki informasi tentang kendala mana yang menyebabkan konflik saat memproses tindakan tersebut. Jika Anda memerlukan informasi semacam itu, atau tindakan spesifik tergantung pada pelanggaran batasan, Anda harus menulis fungsi pemicu tetapi kemudian Anda kehilangan atomisitas yang sangat penting dari INSERT ... ON CONFLICT DO ... pernyataan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nama aplikasi di url JDBC menggunakan c3p0

  2. @BatchSize penggunaan yang cerdas atau bodoh?

  3. STRING_AGG() Fungsi di PostgreSQL

  4. pilih dari ... - berdasarkan nilai dalam format JSON

  5. Komentari karakter/karakter di postgres/postgresql/psql?