Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Renomear uma tabela InnoDB sem atualizar as referências de chave estrangeira a ela?


Perguntas antigas, mas a seguir é uma maneira possível de contornar.Basicamente mova os dados em vez de renomear as tabelas. É claro que você precisa garantir que os novos dados cumpram as regras de chave estrangeira.
SET foreign_key_checks = 0;
CREATE TABLE IF NOT EXISTS foo_old LIKE foo;
INSERT INTO foo_old SELECT * FROM foo;
TRUNCATE foo;
INSERT INTO foo SELECT * FROM foo_new;

Certifique-se de executá-lo como uma consulta para que o Foreign_key_checks se aplique a tudo. Espero que isto ajude.