sql >> Database >  >> RDS >> Mysql

Hoe hernoem ik snel een MySQL-database (schemanaam wijzigen)?

Voor InnoDB , lijkt het volgende te werken:maak de nieuwe lege database aan en hernoem vervolgens elke tabel om de beurt in de nieuwe database:

RENAME TABLE old_db.table TO new_db.table;

Daarna moet je de rechten aanpassen.

Voor scripting in een shell kunt u een van de volgende gebruiken:

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

OF

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;

Opmerkingen:

  • Er is geen spatie tussen de optie -p en het wachtwoord. Als uw database geen wachtwoord heeft, verwijder dan de -u username -ppassword deel.
  • Als een tabel een trigger heeft, kan deze niet met de bovenstaande methode naar een andere database worden verplaatst (zal resulteren in Trigger in wrong schema fout). Als dat het geval is, gebruik dan een traditionele manier om een ​​database te klonen en verwijder de oude:

    mysqldump old_db | mysql new_db

  • Als u opgeslagen procedures heeft, kunt u deze achteraf kopiëren:

    mysqldump -R old_db | mysql new_db



  1. Veiligheidsnetten

  2. Waaraan wijst Hibernate een boolean datatype toe bij standaard gebruik van een Oracle-database?

  3. Wat is het verschil tussen pls_integer en binary_integer?

  4. BOB volledig begrijpen ATTR_PERSISTENT