Vai al contenuto
Errori SQL/DatabaseErrore
40P01

40P01 — Deadlock Rilevato

Due o più transazioni si attendono reciprocamente i lock, generando un deadlock.

postgresql

Cause di questo errore

La transazione A detiene il lock X e attende Y, mentre la transazione B detiene Y e attende X. Il database ha eseguito il rollback di una transazione.

Come correggerlo

Riprovare la transazione annullata. Accedere alle tabelle in ordine coerente. Mantenere le transazioni brevi. Usare FOR UPDATE NOWAIT per fallire rapidamente.

Esempio

-- deadlock_detected
-- PostgreSQL automatically aborts one transaction
-- Fix: ensure consistent lock ordering
Documentazione ufficiale

Codici di errore correlati