Mysql
 sql >> база данни >  >> RDS >> Mysql

Преименуване на таблица на InnoDB без актуализиране на препратки към външни ключове към нея?

Стари въпроси, но следването е възможен начин. По принцип преместете данните, вместо да преименувате таблиците. Разбира се, трябва да се уверите, че новите данни се придържат към правилата за външния ключ.

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;

Уверете се, че го изпълнявате като една заявка, така че external_key_checks да се прилага за цялото нещо. Надявам се това да помогне.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL външни ключове върху себе си

  2. Архивиране на база данни на mysql с mysqldump

  3. Могат ли колоните на таблицата с външен ключ да бъдат NULL?

  4. SQL how групирайте по фискално тримесечие и година с поле за дата

  5. Посочете SSL, който да се използва за jdbc в context.xml