PostgreSQL understøtter ikke dirty reads (READ UNCOMMITTED
). Som @a_horse_with_no_name påpegede, manualen
siger:
Dette passer med reglen i standarden om, at databasen skal behandle ikke-understøttede isolationsniveauer som det stærkest understøttede niveau.
Der er ingen understøttet måde at læse ikke-forpligtede tuples fra en igangværende transaktion i PostgreSQL. Hvis der var, ville du være i stand til at få ting som duplikerede værdier for primærnøgler og generelt kaos, så det ville alligevel ikke være særlig nyttigt.
Der er et par måder, hvorpå igangværende transaktioner kan kommunikere og påvirke hinanden:
- Via en delt klientapplikation (selvfølgelig)
SEQUENCE
(ogSERIAL
) opdateringer sker med det samme, ikke på commit-tidspunktet- rådgivningslåsning
- Normal række- og tabellåsning, men inden for reglerne for
READ COMMITTED
synlighed UNIQUE
ogEXCLUSION
begrænsninger
Det er muligt at se ikke-forpligtede tuple-data ved at bruge superbruger-kun debug-faciliteter såsom sidesyn , men kun hvis du virkelig forstår det indre af datalageret. Det er kun egnet til datagendannelse og fejlfinding. Du vil se flere versioner af data i en væg med hexadecimal output.