sql >> Databasteknik >  >> RDS >> Mysql

Hur konverterar man alla tabeller i databasen till en sammanställning?

Du måste köra en alter table-sats för varje tabell. Uttalandet skulle följa denna form:

ALTER TABLE tbl_name
[[DEFAULT] CHARACTER SET charset_name]
[COLLATE collation_name]

För att nu få alla tabeller i databasen måste du köra följande fråga:

SELECT * 
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA="YourDataBaseName"
AND TABLE_TYPE="BASE TABLE";

Så låt nu MySQL skriva koden åt dig:

SELECT CONCAT("ALTER TABLE ", TABLE_SCHEMA, '.', TABLE_NAME," COLLATE your_collation_name_here;") AS    ExecuteTheString
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA="YourDatabaseName"
AND TABLE_TYPE="BASE TABLE";

Du kan kopiera resultaten och köra dem. Jag har inte testat syntaxen men du borde kunna lista ut resten. Se det som en liten övning.

Hoppas det hjälper!



  1. MySQL-fel 1215:Kan inte lägga till en främmande nyckel-begränsning

  2. Ta bort frågan fungerar inte i mysql

  3. Konvertera ett datum till Julian Day i PostgreSQL

  4. Hur kan jag stoppa en pågående MySQL-fråga?