PostgreSQL stöder inte dirty reads (READ UNCOMMITTED
). Som @a_horse_with_no_name påpekade, handboken
säger:
Detta är passande med regeln i standarden att databasen måste behandla icke-stödda isoleringsnivåer som den starkaste stödda nivån.
Det finns inget stöds sätt att läsa oengagerade tupler från en pågående transaktion i PostgreSQL. Om det fanns skulle du kunna få saker som dubbletter av värden för primärnycklar och allmänt kaos så det skulle inte vara särskilt användbart ändå.
Det finns några sätt pågående transaktioner kan kommunicera och påverka varandra:
- Via en delad klientapplikation (naturligtvis)
SEQUENCE
(ochSERIAL
) uppdateringar sker omedelbart, inte vid bekräftelsetid- rådgivande låsning
- Normal rad- och tabelllåsning, men inom reglerna för
READ COMMITTED
synlighet UNIQUE
ochEXCLUSION
begränsningar
Det är möjligt att se oengagerad tuppeldata med hjälp av enbart superanvändare felsökningsfaciliteter som sidainspektera , men bara om du verkligen förstår insidan av datalagret. Den är endast lämplig för dataåterställning och felsökning. Du kommer att se flera versioner av data i en vägg med hexadecimal utdata.