sql >> Databáze >  >> RDS >> Mysql

Jak rychle přejmenuji databázi MySQL (změním název schématu)?

Pro InnoDB , zdá se, že následující funguje:vytvořte novou prázdnou databázi a poté postupně přejmenujte každou tabulku na novou databázi:

RENAME TABLE old_db.table TO new_db.table;

Poté budete muset upravit oprávnění.

Pro skriptování v shellu můžete použít některý z následujících:

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

NEBO

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;

Poznámky:

  • Mezi možností -p není mezera a heslo. Pokud vaše databáze nemá žádné heslo, odstraňte -u username -ppassword část.
  • Pokud má některá tabulka spouštěč, nelze ji přesunout do jiné databáze pomocí výše uvedené metody (výsledkem bude Trigger in wrong schema chyba). V takovém případě použijte tradiční způsob klonování databáze a poté starou zrušte:

    mysqldump old_db | mysql new_db

  • Pokud máte uložené procedury, můžete je poté zkopírovat:

    mysqldump -R old_db | mysql new_db



  1. Jak UNCOMPRESS() funguje v MariaDB

  2. Jak funguje GREATEST() v MariaDB

  3. SqlBulkCopy ze seznamu<>

  4. Jak přidat dny k datu v T-SQL