SóProvas


ID
3947662
Banca
FCC
Órgão
AL-AP
Ano
2020
Provas
Disciplina
Banco de Dados
Assuntos

O bloqueio em nível de linha ou registro, no PostgreSQL versão 11.x, é obtido automaticamente quando a linha é atualizada ou excluída. Os bloqueios em nível de linha não afetam a consulta aos dados, já que bloqueiam apenas gravações na mesma linha.


Para ‘forçar’ um bloqueio de linha em um comando SELECT, deve-se usar:

Alternativas
Comentários
  • Rebimboca da parafuseta.

    .

    .

    Row-level Lock Modes

    FOR UPDATE

    FOR UPDATE causes the rows retrieved by the SELECT statement to be locked as though for update. This prevents them from being locked, modified or deleted by other transactions until the current transaction ends

  • LETRA C - FOR UPDATE.

    Além dos bloqueios no nível de tabela, existem os bloqueios no nível de linha.

    O bloqueio no nível de linha é obtido automaticamente para uma linha específica quando a linha é atualizada (ou excluída ou marcada para atualização).

    O bloqueio é mantido até a transação efetivar ou desfazer as alterações. Os bloqueios no nível de linha não afetam a consulta aos dados; bloqueiam apenas escritas na mesma linha. Para obter um bloqueio no nível de linha sem na verdade modificá-la, a linha deve ser selecionada por meio do comando SELECT FOR UPDATE.

    Deve ser observado que após ser obtido um bloqueio no nível de linha, a transação pode atualizar esta linha várias vezes sem medo de conflito.

  • Se FOR UPDATE ou FOR SHARE for especificado, a instrução SELECT bloqueia as linhas selecionadas contra atualizações simultâneas.

  • A instrução SELECT FOR UPDATE permite bloquear os registros no conjunto de resultados do cursor. Você não é obrigado a fazer alterações nos registros para usar esta declaração. Os bloqueios de registro são liberados quando a próxima instrução de confirmação ou rollback é emitida.