Neste artigo você vai aprender a como desabilitar uma FOREIGN KEY em MySQL, de modo temporário ou para sempre!

desabilitar uma FOREIGN KEY em MySQL capa

Fala programador(a), beleza? Bora aprender mais sobre configurações, FOREIGN KEY e também SQL!

Podemos desabilitar temporariamente ou para um tempo indeterminado as chaves estrangeiras

Há um comando que se chama SET, que serve para alterar algumas configurações

Vamos utilizar o SET em conjunto de FOREIGN_KEY_CHECKS, uma propriedade de chaves estrangeiras

Alterando este valor para 0, desabilitados as FKs

Veja um código como exemplo:

SET FOREIGN_KEY_CHECKS=0;

Agora as chaves estrangeiras estão desabilitadas

Para voltar elas ao normal, utilize o seguinte comando:

SET FOREIGN_KEY_CHECKS=1;

Alterando para 1 teremos novamente as checagens de FKs, ou seja, o sistema volta como a forma padrão

Podemos então alternar o valor de 0 para 1 quando precisarmos!

Conclusão

Neste artigo você aprendeu a como desabilitar uma FOREIGN KEY em MySQL, de modo permanente ou temporário

Utilizamos o operador SET em conjunto de FOREIGN_KEY_CHECKS

Alterando o valor entre 0 e 1, sendo 0 desabilitado e 1 para habilitar novamente

Confira nossos cursos gratuitos no Youtube, com vídeos todos os dias!

Se inscreva e ative o sininho para receber as notificações e aprender mais ainda sobre desenvolvimento web!

Veja também nosso catálogo de cursos na Udemy, todos com exercícios e projetos práticos, nas mais diversas tecnologias

O link acima contém um cupom de desconto para os cursos!
Subscribe
Notify of
guest

1 Comentário
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Anderson Santos

Qual o Risco de fazer isso em um banco em produção. Pergunto pois estou tentando criar uma fk para uma tabela e coluna já existente, mas dá erro de restrição: [Content] Erro SQL (1452): Cannot add or update a child row: a foreign key constraint fails (nome_banco.#sql-734_1d2, CONSTRAINT fk_adiantamentos_lancamento_caixa_estorno FOREIGN KEY (lancamento_caixa_estorno_id) REFERENCES lancamento_caixa (lancamento_caixa_id) O) Mas quando eu uso: SET foreign_key_checks = 0; ALTER TABLE adiantamentos ADD INDEX fk_adiantamentos_lancamento_caixa_estorno (lancamento_caixa_estorno_id); ALTER TABLE adiantamentos ADD CONSTRAINT fk_adiantamentos_lancamento_caixa_estorno   FOREIGN KEY (lancamento_caixa_estorno_id) REFERENCES lancamento_caixa(lancamento_caixa_id) ON UPDATE CASCADE ON DELETE RESTRICT; SET foreign_key_checks = 1; Consigo criar a Fk. Meu receio é fazer… Read more »