Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
violation of primary or unique key hatası
#1
Dostlar selamlar... Geçenlerde bir veri tabanım şişmiş, ağırlaşmıştı. Bir de bir sorgu çok yavaş çalışıyordu. Siz dostların yardımıyla sorguyu yenileyip iki tabloya yeni index ekledim.  onarmalardan (ibexpert /tols/extact metadata menüsünden kopya oluşturma) sonra boyut düştü ve gözle görülür hızlanma oldu. Yaptığım testlerde hata olmayınca kullanıcının kullanımına açtım. bir süre sonra hata vermeye başladı dedi. hatalar şöyle. Aslında verdiği tabloya eklenmiş yeni bir index yok. Olduğu gibi aynı. Bir değişim yapmadığım yerlerde de hata veriyor. Verilen hataların genelinde 
"violation of primary or unique key..." yazıyor. İlgili tablolara baktığımda PK dışında bir index yok. Bu hatalar genellikle yeni kayıt girişlerinde yaşanıyor. Bir de her zaman vermiyor. Bu hataların sebebi nedir nasıl çözebilirim. Ekteki resimlerde bir kayıt işlemi sonrası alınan hata resmi var. Teşekkürler

     
   
Cevapla
#2
ibexpert' den backup restore yapmayı denermisiniz.
Cevapla
#3
REHBER ve FIRMA_URUNLER tablosuna aynı kod ile 2. kaydı yazmaya çalışıyorsunuz diyor. Kısaca bu tabloların Generatorlerini kontrol edin. Son kayıt id (kodu) si 100 ise Generatorunuz bunun altında bir sayıda kalmış.
WWW
Cevapla
#4
(13-05-2020, Saat: 08:49)esistem Adlı Kullanıcıdan Alıntı: REHBER ve FIRMA_URUNLER tablosuna aynı kod ile 2. kaydı yazmaya çalışıyorsunuz diyor. Kısaca bu tabloların Generatorlerini kontrol edin. Son kayıt id (kodu) si 100 ise Generatorunuz bunun altında bir sayıda kalmış.

Değerli hocam aynen generatörler bozulmuş. O dan başlamış. Niçin böyle olur? Sebepleri nedir? İlgili tabloya bakıp tek tek generatörleri manuel gireceğim.

(13-05-2020, Saat: 06:47)Ahmet İPEKÇİ Adlı Kullanıcıdan Alıntı: ibexpert' den backup restore yapmayı denermisiniz.

Daha önce denemiştim sonuç alamadım.
Cevapla
#5
Merhaba,
Önce Meta Data yı yedek alıp daha sonra verileri alıp aktarma yaptıysanız Meta Data da Generator değerlerini almamıştır o yüzden bu şekilde olabilir.

Ek olarak aktarımdan sonra bu tip problemleri gidermek için aşağıdaki gibi bir stored procedure oluşturup aktarımdan sonra çalıştırabilirsiniz.
create procedure AA_VT_ID 
as
declare variable ID integer;
begin
SELECT COALESCE(MAX(KOD),0) FROM BANKA INTO :ID;
execute statement 'ALTER SEQUENCE GEN_BANKA_ID RESTART WITH '||:ID;
SELECT COALESCE(MAX(KOD),0) FROM BANKA_ISLEM INTO :ID;
execute statement 'ALTER SEQUENCE GEN_BANKA_ISLEM_ID RESTART WITH '||:ID;
SELECT COALESCE(MAX(KOD),0) FROM BANKA_TUR INTO :ID;
execute statement 'ALTER SEQUENCE GEN_BANKA_TUR_ID RESTART WITH '||:ID;
end
WWW
Cevapla
#6
Teşekkür ederim moderatörüm.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  primary key woywod 6 1.547 07-02-2020, Saat: 14:08
Son Yorum: Fesih ARSLAN
  Ibexpert ile yapilamayan kolon degisikligi(unique)(cozuldu) 41linea41 1 712 29-11-2019, Saat: 14:26
Son Yorum: hi_selamlar
  Alter Table Add Primary key(ID) çalıştıramadım 41linea41 5 1.811 25-06-2019, Saat: 20:57
Son Yorum: 41linea41
  Firebird Bağlantı Hatası ve Çözümü AbdullahB 7 4.584 17-02-2017, Saat: 23:06
Son Yorum: AbdullahB
  firebird bağlantı hatası. Kamuran Alpkaya 16 9.159 16-02-2017, Saat: 16:40
Son Yorum: DelphiCanR



Konuyu Okuyanlar: 1 Ziyaretçi