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!
Obrigado!
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;
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
É 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