I değerleri benim geçici tablo seçer ve böylece gibi veritabanına bunları ekler saklı bir yordam koşuyorum SEÇ saatte binlerce istekleri işleyen bir sunucuda saatlerce), daha sonra EmailAddress sütununda bir dizinde "UNIQUE KEY kısıtlaması ihlali" gibi benzersiz bir kısıtlama hatası alıyorum.INSERT INTO .. .. benzersiz kısıtlama ihlali
Yinelenen değerler arasında geçiş yapmadığımı onaylarım. Olsa bile, DISTINCT tarafından yakalanmalı.
-SQL Server 2008 -Stored proc + SELECT ve ardından gelen INSERT arasında, bir INSERT tamamladı aynı/farklı saklanan proc başka arama yapıldı Bu olabilir + JDBC CallableStatement
işlemleri kullanmıyor benzer verilerle mi? Eğer öyleyse, bunu önlemenin en iyi yolu ne olurdu?
Bazı fikirler: Üretimde bir kerede bu SQL Server ile iletişim kuran çok sayıda "istemciler" örneğimiz var, bu yüzden ilk tepkimem bir eşzamanlılık sorunuydu, ancak bunu kendim kopyalayamıyorum. Yaptığım en iyi tahmin, ama şimdiye kadar hiçbir yere gitmedi. Bu, üretim ortamıyla karşılaştırıldığında yükün önemsiz olduğu evreleme ortamımızda gerçekleşmez. Eşzamanlılık sorunlarına bakmaya başladığım ana sebep buydu.
EmailAddress öğesindeki her iki taraftaki NULL değeri, benzersiz anahtar kısıtlamayı ihlal edebilir. Bu sütun geçersizse, eki 'mevcut' olarak yeniden yazabilirsiniz. –
İyi nokta. Koddaki boş değerlere karşı kontrol yaparım, ancak sanırım tekrar sql'de kontrol edebilirim. –