Hoşgeldin Sivil

.
Forum Yöneticisi: Administrator | Bu Bölümde Yetkili Tüm Yöneticiler? | Bu konuyu okuyanlar?

 Forum Ana Sayfa
   PostgreSQL

   
 Kurallar    Aktif Konular    PM    Kayıt Ol     Giriş Yap  
» PostgreSQL - Yeni Kayıt Hatası ve Çözümü
Oy Ver   
 
Gönderilme Tarihi: 24 Eylül 2023 13:31:08 - Kayıtlı IP
  Mesajı İhbar Et!     

Balerion
Balerion the Black Dread

Albay

İstanbul
26 Ocak 2022
81 Mesaj

Durum: Öğreniyor


Aktiflik
Seviye
Deneyim



Başlık normalde "PostgreSQL - Duplicate Key Violates Unique Constraint Hatası Çözümü" şeklinde olacaktı ancak karakter limiti yetersiz geldi.

PostgreSQL'e bir tabloya yeni bir kayıt eklerken aşağıdaki hatayı almaya başladım.

ERROR: duplicate key value violates unique constraint

Bu hata, eklemeye çalıştığım satır içindeki  bir alanın benzersiz olduğunu ve daha önce benzer bir satır eklediğimi söylüyordu. İşin ilginç tarafı, eklemeye çalıştığım veri içerisinde unique bir alan yoktu. Jeton, daha sonra düştü. Otomatik artan olarak belirlenmiş ve veri tabanının kendi oluşturduğu ID numarasının zaten var olduğunu söylüyordu. Bunun bir senkronizasyon hatası olduğunu anladım.

Daha çok, DB'ye dışarıdan toplu veri aktarma gibi durumlarda karşılaştığımız bu durum, ID numarasının hatalı ölçülmesi kaynaklı bir durumdu.

Test etmek için aşağıdaki komutu çalıştırıyoruz.

SELECT CURRVAL(PG_GET_SERIAL_SEQUENCE('"tablo_adi"', 'id')) AS "Current Value", MAX("id") AS "Max Value" FROM "tablo_adi";

Eğer Current Value, Max Value değerine eşit değilse senkronizasyon problemi var demektir. Çözümü ise basit, aşağıdaki komutun çalıştırılması kafi.

SELECT SETVAL((SELECT PG_GET_SERIAL_SEQUENCE('"tablo_adi"', 'id')), (SELECT (MAX("id") + 1) FROM "tablo_adi"), FALSE);




___________________________________________
Elimizden Geldikçe, Dilimiz Döndükçe.
       
  Yeni Üyeler TIM ,    
 
 
Git:
  Arkadaşına yolla

Sayfa Yüklenme Süresi: 0.0485


 

İçerik Yöneticisi : AKTIF / Veriler Aktarıldı...
IP Adresiniz : 172.71.255.105 Güvenlik Nedeniyle Kayıt Altındadır.



Uzun yoldan geldik, uzun yola devam...

   


Reklam vermek için tıklayın

Forum Kuralları | Üye Olmak İçin | CyberAkademi | Operasyonel TİM'ler
CYBERAKADEMI ~ 2021