Cursores roláveis e isolamento da transação
A tabela a seguir lista os fatores que determinam a visibilidade das alterações.
Foi feita alguma alteração? | A visibilidade depende do seguinte: |
---|---|
Cursor | Tipo e implementação do cursor |
Outras instruções na mesma transação | Tipo do cursor |
Instruções em outras transações | Tipo de cursor, nível de isolamento da transação |
Esses fatores são mostrados na ilustração a seguir.
A tabela a seguir resume a capacidade de cada tipo de cursor de detectar as alterações feitas por ele mesmo, por outras operações na sua própria transação e por outras transações. A visibilidade das últimas alterações varia conforme o tipo de cursor e do nível de isolamento da transação que contém o cursor.
Tipo de cursor/ação | Self | Propr Txn |
Othr Txn (RU[a]) |
Othr Txn (RC[a]) |
Othr Txn (RR[a]) |
Othr Txn (S[a]) |
---|---|---|---|---|---|---|
Estático | ||||||
Insert | Talvez[b] | Não | No | No | No | Não |
Atualizar | Talvez[b] | Não | No | No | No | Não |
Excluir | Talvez[b] | Não | No | No | No | Não |
Controlado por conjunto de chaves | ||||||
Insert | Talvez[b] | Não | No | No | No | Não |
Atualizar | Sim | Sim | Sim | Sim | Não | Não |
Excluir | Talvez[b] | Sim | Sim | Sim | Não | Não |
Dinâmico | ||||||
Insert | Sim | Sim | Sim | Sim | Sim | Não |
Atualizar | Sim | Sim | Sim | Sim | Não | Não |
Excluir | Sim | Sim | Sim | Sim | Não | Não |
[a] As letras entre parênteses indicam o nível de isolamento da transação que contém o cursor. O nível de isolamento da outra transação (na qual a alteração foi feita) é irrelevante.
RU: leitura não confirmada
RC: leitura confirmada
RR: leitura repetível
S: serializável
[b] Depende de como o cursor é implementado. Se o cursor pode detectar essas alterações é relatado por meio da opção SQL_STATIC_SENSITIVITY em SQLGetInfo.