PostgreSQL não suporta leituras sujas (
READ UNCOMMITTED
). Como @a_horse_with_no_name apontou, o manual
diz:Isso está de acordo com a regra do padrão de que o banco de dados deve tratar os níveis de isolamento não suportados como o nível suportado mais forte.
Não há suporte para ler tuplas não confirmadas de uma transação em andamento no PostgreSQL. Se houvesse, você seria capaz de obter coisas como valores duplicados para chaves primárias e caos geral, então não seria muito útil de qualquer maneira.
Existem há algumas maneiras pelas quais as transações em andamento podem se comunicar e afetar umas às outras:
- Por meio de um aplicativo cliente compartilhado (é claro)
SEQUENCE
(eSERIAL
) as atualizações acontecem imediatamente, não no momento do commit- bloqueio consultivo
- Bloqueio normal de linhas e tabelas, mas dentro das regras de
READ COMMITTED
visibilidade UNIQUE
eEXCLUSION
restrições
É possível ver dados de tupla não confirmados usando recursos de depuração somente para superusuários, como pageinspect , mas somente se você realmente entender as entranhas do armazenamento de dados. É adequado apenas para recuperação e depuração de dados. Você verá várias versões de dados em uma parede de saída hexadecimal.