Questão de Banco de Dados — PostgreSQL — FCC 2020
- Código
- fc058925
- Banca
- FCC
- Órgão
- AL-AP
- Ano
- 2020
- Cargo
- Analista Legislativo - Desenvolvedor de Banco de Dados
- AWITH LOCK.
- BEXCLUSIVE.
- CFOR UPDATE.
- DNO UPDATE.
- ELINE LOCK.
GabaritoC — FOR UPDATE.
Gabarito: letra C. No PostgreSQL, para forçar um bloqueio em nível de linha durante uma consulta SELECT, utiliza-se a cláusula FOR UPDATE. Essa cláusula adquire bloqueios exclusivos sobre as linhas retornadas, impedindo que outras transações as modifiquem até o fim da transação atual.
A questão trata especificamente do controle de concorrência no PostgreSQL. As demais alternativas não correspondem a comandos válidos para esse fim:
A) WITH LOCK: não é uma cláusula SQL válida no PostgreSQL (embora exista WITH para CTE, não seguido de LOCK).
B) EXCLUSIVE: é um modo de bloqueio de tabela, usado em LOCK TABLE, não aplicável diretamente a um SELECT.
D) NO UPDATE: não é uma cláusula reconhecida para bloqueio.
E) LINE LOCK: não faz parte da sintaxe do PostgreSQL.
PostgreSQL oferece outras variações de bloqueio em SELECT, como FOR NO KEY UPDATE, FOR SHARE e FOR KEY SHARE, com diferentes níveis de exclusividade. A banca costuma cobrar o nome correto da cláusula — memorize FOR UPDATE.
Gabarito: letra C.
Link permanente: /questoes/fc058925