sql >> Database >  >> RDS >> Mysql

Hoe converteer je alle tabellen in de database naar één sortering?

U moet voor elke tabel een alter table-statement uitvoeren. De verklaring zou deze vorm hebben:

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

Om nu alle tabellen in de database te krijgen, moet u de volgende query uitvoeren:

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

Dus laat MySQL nu de code voor je schrijven:

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";

U kunt de resultaten kopiëren en uitvoeren. Ik heb de syntaxis niet getest, maar je zou de rest moeten kunnen achterhalen. Zie het als een kleine oefening.

Hoop dat dat helpt!



  1. Bereken leeftijd met decimalen vanaf geboortedatum

  2. Solr gebruiken met MySQL

  3. telefoonnummer klikbaar maken om scherm op mobiel te bellen?

  4. Hoe terug te draaien wanneer er een fout optreedt tijdens het uitvoeren van de opdracht sql loader?