Questão de Banco de Dados — Banco de Dados Relacionais — FUNDATEC 2023
Banco de Dados›Banco de Dados Relacionais
Código
qq896741
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2023
Nível
Superior
Cargo
ANC - Analista em Computação - Ênfase em Desenvolvimento Oracle PL/SQL
Considere o seguinte comando:SELECT * FROM Pessoa FOR UPDATE;Analise as assertivas abaixo e assinale a alternativa correta.I. Pode ser especificada na cláusula FOR UPDATE uma coluna, por exemplo: FOR UPDATE OF Nome.II. A cláusula FOR UPDATE irá fazer um LOCK de todas as tuplas selecionadas pelo SELECT e só as liberará quando a transação, que tem esse comando SELECT, for finalizada.III. A cláusula FOR UPDATE somente pode ser utilizada no SELECT externo de uma consulta, não pode ser utilizada em subconsultas ou SELECT aninhado.
ATodas estão corretas.
BTodas estão incorretas.
CApenas I e II estão corretas.
DApenas I e III estão corretas.
EApenas II e III estão corretas.
Revelar gabarito e comentário▾
GabaritoA — Todas estão corretas.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Cláusula FOR UPDATE em SQL
Gabarito: letra A. Todas as assertivas estão corretas. O comando SELECT ... FOR UPDATE é utilizado para bloquear as linhas retornadas, garantindo que nenhuma outra transação as modifique até o fim da transação atual. É possível especificar colunas a serem bloqueadas com FOR UPDATE OF coluna, e a cláusula só pode ser usada no SELECT mais externo, não em subconsultas.
Assertiva I — ✅ Correta
A sintaxe FOR UPDATE OF Nome é válida em diversos SGBDs (como Oracle e PostgreSQL), permitindo restringir o bloqueio a colunas específicas de tabelas envolvidas na consulta. O item está correto.
Assertiva II — ✅ Correta
O comportamento descrito é o padrão: as tuplas selecionadas são bloqueadas (lock) e permanecem assim até que a transação seja encerrada por COMMIT ou ROLLBACK. O item está correto.
Assertiva III — ✅ Correta
Por definição, a cláusula FOR UPDATE só pode ser aplicada ao SELECT mais externo de uma consulta. Tentar usá-la em subconsultas ou SELECT aninhados gera erro de sintaxe. O item está correto.
Conclusão: I, II e III são verdadeiras → alternativa A.
PEGA ESSA DICA!
Lembre-se de que FOR UPDATE é um recurso de controle de concorrência. Nas provas, costuma ser cobrada a restrição de não poder ser usado em subconsultas, bem como a possibilidade de especificar colunas com OF.