1
resposta

Duvida na tabela NOTAS E ITENS NOTAS

Boa noite, Em um exercício anterior, a resposta da questão era:

DELETE A FROM NOTAS A INNER JOIN CLIENTES B ON A.CPF = B.CPF WHERE B.IDADE <= 18;

Pelo que eu entendi, os registros da tabela NOTAS serão excluídos.

Entretanto, para que isto acontecesse, eu num teria que excluir primeiro registros da tabela ITENS_NOTAS conforme especificado neste exercício, já que tem chave estrangeira ligando ambas?

Os registros da tabela NOTAS foram excluídos normalmente...

Aguardo atenciosamente :)

1 resposta

Oii Flávia, tudo bom?

Sim, o que você disse faz sentido. As tabelas foram criadas com uma chave estrangeira simples, ou seja, não foi criada com a cláusula constraint, exemplo:

CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID)
    REFERENCES Persons(PersonID)
); 

Por conta disso, o MySQL deixou apagar os registros tranquilamente. Se tivesse sido criada com a constraint, iria retornar o erro que não poderia apagar aquele registro.

A constraint é algo mais avançado do SQL. Eu não sei te dizer se nos próximos cursos o professor abordará sobre, porque ainda não o fiz.

Espero ter ajudado. Qualquer coisa estou à disposição, tá bom? :)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software