23505: unique_violation
PostgreSQLNe demek?
Eklenen ya da güncellenen satır, bir UNIQUE constraint'ini veya primary key'i ihlal ediyor; aynı değer tabloda zaten var.
Neden olur?
Aynı unique key ile tekrar INSERT yapılması, benzersiz sütuna mükerrer veri girilmesi, sequence değerinin manuel eklemeler yüzünden geride kalması veya eşzamanlı iki isteğin aynı anahtarı eklemesi.
Nasıl çözülür?
Hata detayındaki constraint adı ve anahtar değeri hangi satırın çakıştığını gösterir. Var olan kaydı güncellemek için INSERT ... ON CONFLICT (sutun) DO UPDATE veya DO NOTHING kullanın. Mükerrerleri bulmak için: SELECT sutun, COUNT(*) FROM tablo GROUP BY sutun HAVING COUNT(*) > 1. Sequence geride kaldıysa: SELECT setval('seq_adi', (SELECT MAX(id) FROM tablo)).