sql >> Databáze >  >> RDS >> PostgreSQL

PostgreSQL Transaction Isolation PŘEČTĚTE NEZÁVAZNĚ

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 (a SERIAL ) 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 a EXCLUSION 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.



  1. PHP - IE nezobrazuje aktualizované hodnoty z databáze. Chrome, FF, Opera - OK

  2. Postgres + Hibernate + Java UUID

  3. PL/SQL seznam oddělený čárkami; odstranit dupy a dát do pole

  4. Vlastní pořadí Mysql podle a abecední pořadí podle: