[RESOLVIDO] modificar registro de chave estrangeira e de chave primária após vínculo com esta

1 resposta
PhoenixWings

Boa tarde pessoal. Eu criei uma tabela cep que contém um campo cep com valores 1, 2, 3 … e este campo está vinculado a uma chave estrangeira de mesmo nome (cep) numa outra tabela denominada contatos. Percebi que esses valores numéricos estão errados e estou querendo mudá-los para ceps fictícios como, por exemplo, 23819000 só que não estou conseguindo fazer isso! a constraint foreign key me impede de efetuar esta operação.

mysql> UPDATE cep
    -> SET cep = 23816000
    -> WHERE cidade = 'Nova Iguaçu';
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`esquema_contatos`.`
contatos`, CONSTRAINT `contatos_ibfk_2` FOREIGN KEY (`cep`) REFERENCES `cep` (`cep`))

mysql> UPDATE contatos
    -> SET cep = 23816000
    -> WHERE primeiro_nome = 'Fernanda';
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`esquema_contatos`.`cont
atos`, CONSTRAINT `contatos_ibfk_2` FOREIGN KEY (`cep`) REFERENCES `cep` (`cep`))

como poso fazer para modificar os campos cep da tabela cep e contatos sem precisar apagar as tabelas? Obs.: eu não adicionei nenhuma CONSTRAINT explícita da forma CONSTRAINT contatos_fk. Obrigado pela ajuda!

Existe alguma forma de atualizar simultaneamente uma chave estrangeira e uma primária com um novo registro ?

1 Resposta

PhoenixWings

Consegui resolver o problema usando: SET FOREIGN_KEY_CHECKS = 0; :slight_smile:

Criado 14 de agosto de 2010
Ultima resposta 18 de ago. de 2010
Respostas 1
Participantes 1