sql >> Database teknologi >  >> RDS >> Mysql

Hvordan omdøber jeg hurtigt en MySQL-database (ændrer skemanavn)?

Til InnoDB , ser det ud til at følgende virker:opret den nye tomme database, og omdøb derefter hver tabel til den nye database:

RENAME TABLE old_db.table TO new_db.table;

Du bliver nødt til at justere tilladelserne derefter.

Til scripting i en shell kan du bruge en af ​​følgende:

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

ELLER

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;

Bemærkninger:

  • Der er ingen mellemrum mellem indstillingen -p og adgangskoden. Hvis din database ikke har nogen adgangskode, skal du fjerne -u username -ppassword del.
  • Hvis en tabel har en trigger, kan den ikke flyttes til en anden database ved hjælp af ovenstående metode (vil resultere i Trigger in wrong schema fejl). Hvis det er tilfældet, skal du bruge en traditionel måde at klone en database på og derefter slippe den gamle:

    mysqldump old_db | mysql new_db

  • Hvis du har gemte procedurer, kan du kopiere dem efterfølgende:

    mysqldump -R old_db | mysql new_db



  1. Giv en msdb-brugeradgang til en databasemailprofil i SQL Server (T-SQL)

  2. Mountain Lion Postgres kunne ikke oprette forbindelse

  3. LOAD DATA INFIL Fejlkode:13

  4. Sådan slettes en fremmednøglebegrænsning i SQL