FC ConcursosFC Concursos

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); é

  1. memory overflow.
  2. you have an error in your SQL syntax.
  3. 100235 is too large for int type.
  4. a foreign key constraint fails.
  5. 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

Continue aprendendo