PostgreSQL nepodporuje nečisté čtení (READ UNCOMMITTED
). Jak zdůraznil @a_horse_with_no_name, příručka
říká:
To je v souladu s pravidlem ve standardu, že databáze musí považovat nepodporované úrovně izolace za nejsilnější podporovanou úroveň.
Neexistuje žádný podporovaný způsob, jak číst nepotvrzené n-tice z probíhající transakce v PostgreSQL. Pokud by existoval, mohli byste získat věci jako duplicitní hodnoty primárních klíčů a obecný chaos, takže by to stejně nebylo příliš užitečné.
jsou několik způsobů, jak mohou probíhající transakce komunikovat a vzájemně se ovlivňovat:
- Prostřednictvím sdílené klientské aplikace (samozřejmě)
SEQUENCE
(aSERIAL
) aktualizace probíhají okamžitě, nikoli v době potvrzení- poradní zamykání
- Normální zamykání řádků a tabulek, ale v souladu s pravidly
READ COMMITTED
viditelnost UNIQUE
aEXCLUSION
omezení
Nepotvrzená data n-tice je možné zobrazit pomocí ladicích zařízení pouze pro superuživatele, jako je pageinspect , ale pouze pokud skutečně rozumíte vnitřnostem datového úložiště. Je vhodný pouze pro obnovu dat a ladění. V bloku hexadecimálního výstupu uvidíte několik verzí dat.