Quando referidas, considere as tabelas relacionais TX e TY, criadas e instanciadas com o script SQL a seguir.
create table TY(C int primary key not null, A int)
create table TX(A int primary key not null, B int,
foreign key (B) references TY(C)
on delete cascade
)
insert into TY values (1,0)
insert into TY(C) values (2)
insert into TY(C) values (3)
insert into TY values (5,NULL)
insert into TY values (6,NULL)
insert into TX values (1,2)
insert into TX values (2,1)
insert into TX values (3,2)
insert into TX values (4,2)
Com referência às tabelas TX e TY, como descritas anteriormente, analise o comando SQL a seguir.delete FROM TYApós a execução desse comando, o total de linhas, somando-se os números de linhas de cada tabela, é:
A0;
B1;
C4;
D5;
E9.
Revelar gabarito e comentário▾
GabaritoA — 0;
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”.
Comando DELETE com integridade referencial ON DELETE CASCADE
Gabarito: letra A (0 linhas). O comando delete FROM TY remove todas as linhas da tabela TY. Como a tabela TX possui uma chave estrangeira (B) referenciando TY(C) com a opção ON DELETE CASCADE, a exclusão em TY é propagada para TX, deletando todas as linhas de TX que referenciam as chaves primárias removidas. Como todas as linhas de TX têm B = 1 ou 2, e estes valores existem em TY, todas as 4 linhas de TX também são deletadas. Assim, após a execução, ambas as tabelas ficam vazias, totalizando 0 linhas.
A banca testa o comportamento de integridade referencial com exclusão em cascata, um tópico clássico em bancos de dados relacionais. O candidato que não levar em conta o CASCADE tenderá a somar apenas as linhas de TY (5) ou as de TX (4), ou as duas sem considerar a remoção (9), caindo nos distratores.
Alternativa A — ✅ Correta ⟵ GABARITO
Como explicado, a exclusão em TY com CASCADE remove todas as linhas das duas tabelas, resultando em 0 linhas no total.
Alternativa B — ❌ Incorreta
Afirma que sobra 1 linha. Não há nenhum registro que sobreviva, pois todas as chaves de TX são referenciadas a TY, e a exclusão é em cascata.
Alternativa C — ❌ Incorreta
4 linhas. Esse valor corresponde ao número de linhas de TX antes do DELETE, mas elas são excluídas em cascata. Sem considerar o cascade, alguém poderia pensar que apenas TY perde linhas, mas não é o caso.
Alternativa D — ❌ Incorreta
5 linhas. É a quantidade inicial de linhas de TY, mas o comando deleta todas as linhas de TY e, por cascade, as de TX. Logo, total é 0.
Alternativa E — ❌ Incorreta
9 linhas. Soma de TY (5) + TX (4) antes da exclusão. Ignora completamente o efeito do DELETE.
PEGA ESSA DICA!
Para questões com ON DELETE CASCADE, lembre-se de que a exclusão na tabela pai (referenciada) propaga para as linhas da tabela filha (que referenciam). Sempre verifique a restrição de integridade referencial. Neste caso, como todas as linhas de TX referenciam TY, todas são removidas. Se houvesse linhas em TX com B = NULL (não referenciando), elas permaneceriam.