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

kunci duplikat postgresql melanggar batasan unik

Artikel ini menjelaskan bahwa urutan Anda mungkin tidak sinkron dan Anda harus menyinkronkannya kembali secara manual.

Kutipan dari artikel jika URL berubah:

Jika Anda mendapatkan pesan ini saat mencoba memasukkan data ke dalam database PostgreSQL:

ERROR:  duplicate key violates unique constraint

Itu mungkin berarti bahwa urutan kunci utama dalam tabel yang Anda kerjakan entah bagaimana menjadi tidak sinkron, kemungkinan karena proses impor massal (atau sesuatu seperti itu). Sebut saja "bug bydesign", tetapi tampaknya Anda harus mengatur ulang indeks kunci primer secara manual setelah memulihkan dari file dump. Bagaimanapun, untuk melihat apakah nilai Anda tidak sinkron, jalankan dua perintah ini:

SELECT MAX(the_primary_key) FROM the_table;   
SELECT nextval('the_primary_key_sequence');

Jika nilai pertama lebih tinggi dari nilai kedua, urutan Anda tidak sinkron. Cadangkan database PG Anda (untuk berjaga-jaga), lalu jalankan perintah ini:

SELECT setval('the_primary_key_sequence', (SELECT MAX(the_primary_key) FROM the_table)+1);

Itu akan mengatur urutan ke nilai berikutnya yang tersedia yang lebih tinggi daripada kunci utama yang ada dalam urutan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Istilah sintaks SQL untuk 'WHERE (col1, col2) <(val1, val2)'

  2. simpan string dengan panjang sewenang-wenang di Postgresql

  3. Replikasi PostgreSQL untuk Pemulihan Bencana

  4. postgreSQL - dalam vs apa pun

  5. Bagaimana saya bisa menghapus semua tabel dalam database PostgreSQL?