Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak szybko zmienić nazwę bazy danych MySQL (zmienić nazwę schematu)?

Dla InnoDB , wydaje się, że działa następujące:utwórz nową pustą bazę danych, a następnie zmień nazwę każdej tabeli po kolei na nową bazę danych:

RENAME TABLE old_db.table TO new_db.table;

Po tym będziesz musiał dostosować uprawnienia.

Do pisania skryptów w powłoce możesz użyć jednego z poniższych:

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

LUB

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;

Uwagi:

  • Nie ma spacji między opcją -p i hasło. Jeśli twoja baza danych nie ma hasła, usuń -u username -ppassword część.
  • Jeśli jakaś tabela ma wyzwalacz, nie może zostać przeniesiona do innej bazy danych przy użyciu powyższej metody (spowoduje to, że Trigger in wrong schema błąd). Jeśli tak jest, użyj tradycyjnego sposobu sklonowania bazy danych, a następnie pozbądź się starej:

    mysqldump old_db | mysql new_db

  • Jeśli masz procedury składowane, możesz je później skopiować:

    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 - wybierz dane z bazy danych pomiędzy dwiema datami

  2. Jak ZAMÓWIĆ PRZEZ SUMA() w MySQL?

  3. Połącz się ze zdalnym serwerem MySQL za pomocą SSL z PHP

  4. Zaawansowane zapytanie MySql:Aktualizuj tabelę informacjami z innej tabeli

  5. DODAJ KOLUMNĘ MySQL