Olika databaskollationer låter dig lagra olika typer av tecken i en databas. Som standard har MySQL latin1-teckenuppsättning med latin1_swedish_ci-kollation. Du kan dock enkelt ändra MySQL-sorteringen av specifika tabeller, alla tabeller eller till och med en hel databas. Så här ändrar du sortering i MySQL.
Hur man ändrar sortering av alla tabeller i MySQL
Vi kommer att titta på stegen för att ändra sortering i MySQL.
Här är SQL-frågan för att ändra sortering av en MySQL-tabell
ALTER TABLE tbl_name
[[DEFAULT] CHARACTER SET charset_name]
[COLLATE collation_name]
I ovanstående fråga måste du ange tabellnamnet tbl_name . Du kan också valfritt ange teckenuppsättningen teckenuppsättningsnamn och sortering sorteringsnamn .
Bonusläs :Bästa databasbloggar att följa
Här är ett exempel för att ändra sammanställning av alla tabeller i en databas till utf8_general_ci. Ersätt databasnamn och tabellnamn nedan med databas- respektive fältnamn.
alter table database_name.table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
Om du vill ändra sammanställningen av alla tabeller i din databas, måste du köra ovanstående fråga för varje tabell separat.
Eftersom detta kan vara väldigt tråkigt skapar vi en SELECT-fråga som genererar ALTER-tabellsatserna för varje tabell i vår databas. Först, här är SELECT-frågan som returnerar alla tabellrelaterade detaljer i din databas.
SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA="database_name"
AND TABLE_TYPE="BASE TABLE";
Bonus Läs:Top MySQL Workbench Alternativen
Vi modifierar ovanstående SELECT-fråga för att skapa ALTER TABLE-satsen för varje tabell i din databas.
Här är urvalsfrågan som genererar SQL-frågor för alla tabeller i din databas. Ersätt databasnamn och sorteringsnamn nedan med dina databas- och sorteringsnamn och kör den för att generera SQL-frågor för att ändra sorteringen av alla tabeller i din databas.
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äs:Hur man aktiverar långsam frågeloggning i MySQL
Här är en annan SQL-fråga för att ändra sammanställning av alla tabeller till 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 listan med ALTER TABLE-frågor för varje tabell kan du kopiera-klistra in och köra dem för att ändra sorteringen av alla tabeller.
Förhoppningsvis kommer artikeln ovan att hjälpa dig att ändra sammanställning av alla tabeller i databasen i MySQL.