Forskellige databasesorteringer giver dig mulighed for at gemme forskellige typer tegn i en database. Som standard har MySQL latin1-tegnsæt med latin1_swedish_ci-sortering. Du kan dog nemt ændre MySQL-sortering af specifikke tabeller, alle tabeller eller endda en hel database. Sådan ændrer du sortering i MySQL.
Sådan ændres samling af alle tabeller i MySQL
Vi vil se på trinene til at ændre sortering i MySQL.
Her er SQL-forespørgslen til at ændre sammenstilling af én MySQL-tabel
ALTER TABLE tbl_name
[[DEFAULT] CHARACTER SET charset_name]
[COLLATE collation_name]
I ovenstående forespørgsel skal du angive tabelnavnet tbl_name . Du kan også vælge at angive tegnsæt charset_name og sortering sorteringsnavn .
Bonuslæser:Topdatabaseblogs at følge
Her er et eksempel på at ændre sammenstilling af alle tabeller i en database til utf8_general_ci. Erstat databasenavn og tabelnavn nedenfor med henholdsvis database- og feltnavne.
alter table database_name.table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
Hvis du vil ændre sammenstilling af alle tabeller i din database, skal du køre ovenstående forespørgsel for hver tabel separat.
Da dette kan være meget kedeligt, opretter vi en SELECT-forespørgsel, der genererer ALTER-tabelsætningerne for hver tabel i vores database. Først, her er SELECT-forespørgslen, der returnerer alle tabelrelaterede detaljer i din database.
SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA="database_name"
AND TABLE_TYPE="BASE TABLE";
Bonus Læs:Top MySQL Workbench Alternativer
Vi ændrer ovenstående SELECT-forespørgsel for at oprette ALTER TABLE-sætning for hver tabel i din database.
Her er den udvalgte forespørgsel, der genererer SQL-forespørgsler til alle tabeller i din database. Erstat databasenavn og sorteringsnavn nedenfor med din database og sorteringsnavne, og kør den for at generere SQL-forespørgsler for at ændre sorteringen af alle tabeller i din database.
SELECT CONCAT("ALTER TABLE ", TABLE_SCHEMA, '.', TABLE_NAME," COLLATE collation_name;") AS ExecuteTheString FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA="database_name" AND TABLE_TYPE="BASE TABLE";
Bonuslæser:Sådan aktiverer du Slow Query Log in MySQL
Her er en anden SQL-forespørgsel for at ændre sammenstilling af alle tabeller til utf8.
SELECT CONCAT('ALTER TABLE ', tbl.TABLE_SCHEMA, '.', tbl.TABLE_NAME, ' CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') FROM information_schema.TABLES tbl WHERE tbl.TABLE_SCHEMA = 'database_name'
Når du har listen over ALTER TABLE-forespørgsler for hver tabel, kan du copy-paste og køre dem for at ændre sammenstilling af alle tabeller.
Forhåbentlig vil ovenstående artikel hjælpe dig med at ændre sammenstilling af alle tabeller i databasen i MySQL.