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

Как бързо да преименувам MySQL база данни (промяна на името на схемата)?

За InnoDB , изглежда, че следното работи:създайте новата празна база данни, след това преименувайте всяка таблица на свой ред в новата база данни:

RENAME TABLE old_db.table TO new_db.table;

След това ще трябва да коригирате разрешенията.

За скриптове в обвивка можете да използвате едно от следните:

mysql -u username -ppassword old_db -sNe 'show tables' | while read table; \ 
    do mysql -u username -ppassword -sNe "rename table old_db.$table to new_db.$table"; done

ИЛИ

for table in `mysql -u root -ppassword -s -N -e "use old_db;show tables from old_db;"`; do mysql -u root -ppassword -s -N -e "use old_db;rename table old_db.$table to new_db.$table;"; done;

Бележки:

  • Няма интервал между опцията -p и паролата. Ако вашата база данни няма парола, премахнете -u username -ppassword част.
  • Ако някаква таблица има задействане, тя не може да бъде преместена в друга база данни с помощта на горния метод (ще доведе до Trigger in wrong schema грешка). Ако случаят е такъв, използвайте традиционен начин за клониране на база данни и след това изхвърлете старата:

    mysqldump old_db | mysql new_db

  • Ако имате съхранени процедури, можете да ги копирате след това:

    mysqldump -R old_db | mysql new_db



  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. Docker:Комбинирайте няколко изображения

  3. onbeforeprint() и onafterprint() еквивалентни за браузъри извън IE

  4. Как да мигрирам база данни на SQL Server към MySQL?

  5. Грешка при преименуването на колона в MySQL