Como impedir registro de ser deletado se estiver sendo usado como chave estrangeira MySQL[RESOLVIDO]
3 respostasResolvido
mysql
G
guilherme-borges
Olá Pessoal!
Eu tenho uma tabela no banco de dados chamada TIPOOS que ela está relacionada com a tabela ORDEMSERVICO, quando eu deleto um registro da tabela TIPOOS o registro da tabela ORDEMSERVICO relacionado também é deletado, o que eu queria era impedir o registro da tabela TIPOOS de ser deletado se estiver sendo usado. OBS.: ON DELETE CASCADE NÃO FAZ ISSO!
Para poder te ajudar melhor, compartilhe o código de suas tabelas…
Pelo o que deu pra entender por alto, você deve remover a chave estrangeira e adiciona-lá novamente porem ao fazer referencia coloque NO ACTION no ON DELETE
EX: ALTER TABLE ORDEMSERVICO DROP FOREIGN KEY fk_id_relacionamento; ALTER TABLE ORDEMSERVICO ADD CONSTRAINT fk_id_relacionamento FOREIGN KEY (fk_id_relacionamento) REFERENCES TIPOOS(id) ON DELETE NO ACTION ON UPDATE NO ACTION;
A
Solucao aceita
AbelBueno
O comportamento padrao de uma chave estrangeira é justamente prevenir isso de acontecer. A opçao dada pelo @JeffersonSO é a mesma que você tem se nao especificar nada.
Esse tipo de problema acontece quando você usa o on delete cascade
G
guilherme-borges
É que eu testei tirando o on delete cascade e mesmo assim ele excluiu sem dar erro mas quando eu testei eu nao tirei de todos os relacionamentos vou testar depois e posto se deu certo vlw