DBAtlas · Veritabanı operasyon atlası

23P01: exclusion_violation

PostgreSQL

Ne demek?

Bir EXCLUDE constraint'i (exclusion constraint) ihlal edildi. Bu constraint türü, iki satırın belirli operatörlere (ör. aralık çakışması &&) göre çakışmasını engeller; eklenen/güncellenen satır mevcut bir satırla çakıştığı için reddedildi.

Neden olur?

Genellikle GiST tabanlı bir EXCLUDE constraint'i (ör. randevu/oda rezervasyonu için tstzrange && ile zaman çakışması yasağı) tanımlıdır ve eklenen kayıt mevcut bir kayıtla çakışan bir aralığa/değere sahiptir. Eşzamanlı iki işlem çakışan aralıklar eklediğinde de görülebilir.

Nasıl çözülür?

Eklemeden önce çakışmayı sorguyla kontrol edin ya da hatayı uygulamada yakalayıp kullanıcıya anlamlı bir mesaj gösterin. Çakışan mevcut kaydı bulmak için ilgili aralık/koşulu sorgulayın. İş kuralı çakışmaya izin veriyorsa constraint'i gevşetin; aksi halde girişi düzeltin. Eşzamanlılıkta seri hale gelme için işlemi güvenle yeniden deneyin.

DBAtlas'ta aç →

Aynı motorda diğer kayıtlar