DBAtlas · Veritabanı operasyon atlası

44000: with_check_option_violation

PostgreSQL

Ne demek?

WITH CHECK OPTION tanımlı bir view üzerinden yapılan INSERT/UPDATE, ortaya çıkan satırın view'ın WHERE koşulunu artık sağlamaması nedeniyle reddedildi. View, kendi filtresi dışına düşecek satırların yazılmasını engeller.

Neden olur?

Güncellenebilir bir view WITH CHECK OPTION ile tanımlanmış ve yapılan yazma işlemi sonucunda satır, view'ın tanım koşulunun dışına çıkıyor (ör. view status='aktif' filtreliyken satırı 'pasif' yapmak). Satır güvenliği (RLS) politikalarında da benzer bir denetim tetiklenebilir.

Nasıl çözülür?

Yazılan değerlerin view'ın WHERE koşulunu sağladığından emin olun ya da işlemi view yerine doğrudan temel tablo üzerinde yapın (yetkiler elveriyorsa). İş kuralı satırın filtre dışına çıkmasına izin veriyorsa view'ı WITH CHECK OPTION olmadan yeniden tanımlayın. RLS ise ilgili policy WITH CHECK ifadesini gözden geçirin.

DBAtlas'ta aç →

Aynı motorda diğer kayıtlar