DELETE e chave-estrangeira (Oracle)

Categoria: Oracle
Publicado em 10 de Julho de 2013

Em alguns casos não é possível remover dados de uma tabela pois há uma ou mais tabelas utilizando o registro como chave-estrangeira. 

Isto pode ser evitado criando/modificando a chave-estrangeira dessas outras tabelas com as opções SET NULL ou CASCADE:

  • ON DELETE SET NULL: Se na tabela pai o registro for deletado, o valor da tabela filho será modificado para NULL.
  • ON  DELETE CASCADE: Se na tabela pai o registro for deletado, os registros da tabela filho associados também serão deletados.

Exemplo de alteração de chave-estrangeira para ON DELETE CASCADE:

1
2
3
4
5
ALTER TABLE TABELA_VENDA 
ADD CONSTRAINT FK_COD_CLIENTE FOREIGN KEY(COD_CLIENTE)
   REFERENCES TABELA_CLIENTES(COD_CLIENTE) 
   ON DELETE CASCADE
;




 

Copyright © Fernando Hidemi Uchiyama 2010 - Todos os direitos reservados