sql >> Databáze >  >> RDS >> Mysql

Přejmenování tabulky InnoDB bez aktualizace odkazů na cizí klíč?

Staré otázky, ale následující je možným způsobem kolem. V zásadě přesouvejte data spíše než přejmenovávejte tabulky. Musíte se samozřejmě ujistit, že nová data splňují pravidla pro cizí klíč.

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;

Ujistěte se, že jej spouštíte jako jeden dotaz, aby se kontroly cizích klíčů vztahovaly na celou věc. Doufám, že to pomůže.



  1. rake db:create - problémy s řazením

  2. předání názvu tabulky jako parametru plsql

  3. jak vložit více hodnot do jednoho pole v mysql

  4. Jak monitorovat ProxySQL pomocí Prometheus a ClusterControl