Leider ist es nicht möglich ein Schema bzw. Datenbank in MySQL mittels eines SQL-Standard-Befehls umzubennen. Hier folgen einige Workarounds:
SQL-Kommando in einer Bash-Schleife
mysql [OPTIONS] old_schema -sNe 'show tables' |
while read table;
do mysql [OPTIONS] -sNe
"RENAME TABLE old_schema.$table TO old_schema.$table";
done
mysqldump
mysqldump [OPTIONS] --database oldSchema > oldSchema.sql mysql new_schema < oldSchema.sql
ein SQL-Kommando bauen
SET SESSION group_concat_max_len = 4294967295;
SELECT
CONCAT(
'RENAME TABLE ',
GROUP_CONCAT(
table_schema,'.',table_name, ' TO ','new_schema.',table_name,' '
),
';'
) as stmt
FROM information_schema.TABLES
WHERE table_schema LIKE 'oldSchema'
GROUP BY table_schema;
Welche Alternative man jetzt nimmt, ist zum einen Geschmacksache und zum Anderen hängt es von der Datenbank ab, z.B. ist sie Groß, steht sie unter Dampf etc.