Questão FC372843
Tabela Consumidor: idConsumidor nomeConsumidor cpfConsumidor 1 Paulo Vieira Lima 156.167.178-2 2 Marcos Santana Silva 234.156.765-12 3 Maria de Fátima Caetano Rosa 187.198.056-7 4
Linguagem SQL
FCC · 2019

Tabela Consumidor:
idConsumidor nomeConsumidor cpfConsumidor
1 Paulo Vieira Lima 156.167.178-2
2 Marcos Santana Silva 234.156.765-12
3 Maria de Fátima Caetano Rosa 187.198.056-7
4 Zoraide Pereira Mota 238.765.234-12
Tabela Fatura:
idFatura idConsumidor mesRefFatura DataVencFatura numHidrometroFatura medidaConsumo
3365693 1 05/2019 2019-05-20 344036 80
3366691 2 05/2019 2019-05-10 345681 120
3367690 3 04/2019 2019-04-28 344036 89
3390871 4 03/2019 2019-03-18 345681 100
Tabela ItemFatura:
idItemFatura idFatura descItemFatura valorItemFatura
1 3365693 Captação de água bruta 0.1
1 3366691 Tratamento de água 90
1 3367690 Tratamento de água 61.23
2 3365693 Tratamento de água 60.19
2 3366691 Tratamento de esgoto 67.67
3 3365693 Coleta de esgoto 47.35
3 3366691 Afastamento de esgoto 80
4 3365693 Tratamento de Esgoto 25
A mensagem que expressa corretamente o erro quando se tentar executar o comando UPDATE Fatura SET idConsumidor = 100235 WHERE (idFatura= 3365693); é
- memory overflow.
- you have an error in your SQL syntax.
- 100235 is too large for int type.
- a foreign key constraint fails.
- 0 rows affected, because 3365693 does not exist.
Mostrar resposta e comentário
Gabarito
D
Comentário do professor
A mensagem “a foreign key constraint fails” indica que houve violação de uma restrição de chave estrangeira: o banco recusou a operação porque ela quebraria a integridade referencial.
Na tabela Fatura o campo idConsumidor é uma foreign key que referencia a chave primária idConsumidor da tabela Consumidor. Ao executar UPDATE Fatura SET idConsumidor = 100235 WHERE idFatura = 3365693, o SGBD verifica se existe na tabela Consumidor um registro com idConsumidor = 100235.
Como não existe esse valor referenciado, a alteração violaria a restrição e é rejeitada, gerando a mensagem informada. Para resolver, deve-se primeiro inserir ou garantir o registro referenciado, atribuir um idConsumidor já existente, permitir NULL na FK (se aplicável) ou alterar as regras de relacionamento com cautela.
Conteúdo do catálogo FC Concursos · Atualizado em