PostgreSQL ondersteunt geen vuile leesbewerkingen (READ UNCOMMITTED
). Zoals @a_horse_with_no_name opmerkte, de handleiding
zegt:
Dit past bij de regel in de standaard dat de database niet-ondersteunde isolatieniveaus moet behandelen als het sterkst ondersteunde niveau.
Er is geen ondersteunde manier om niet-vastgelegde tuples te lezen van een lopende transactie in PostgreSQL. Als dat zo was, zou je dingen als dubbele waarden voor primaire sleutels en algemene chaos kunnen krijgen, dus het zou sowieso niet erg handig zijn.
Er zijn zijn een paar manieren waarop lopende transacties kunnen communiceren en elkaar kunnen beïnvloeden:
- Via een gedeelde clienttoepassing (uiteraard)
SEQUENCE
(enSERIAL
) updates gebeuren onmiddellijk, niet op de vastleggingstijd- adviserende vergrendeling
- Normale rij- en tabelvergrendeling, maar binnen de regels van
READ COMMITTED
zichtbaarheid UNIQUE
enEXCLUSION
beperkingen
Het is mogelijk om niet-vastgelegde tuple-gegevens te zien met behulp van debug-faciliteiten die alleen voor supergebruikers zijn, zoals pagina-inspectie , maar alleen als je de ingewanden van de datastore echt begrijpt. Het is alleen geschikt voor gegevensherstel en foutopsporing. Je ziet meerdere versies van gegevens in een muur van hexadecimale uitvoer.