Różne sortowanie bazy danych umożliwia przechowywanie różnych typów znaków w bazie danych. Domyślnie MySQL ma zestaw znaków latin1 z sortowaniem latin1_swedish_ci. Możesz jednak łatwo zmienić sortowanie MySQL konkretnych tabel, wszystkich tabel lub nawet całej bazy danych. Oto jak zmienić sortowanie w MySQL.
Jak zmienić sortowanie wszystkich tabel w MySQL
Przyjrzymy się krokom zmiany sortowania w MySQL.
Oto zapytanie SQL zmieniające sortowanie jednej tabeli MySQL
ALTER TABLE tbl_name
[[DEFAULT] CHARACTER SET charset_name]
[COLLATE collation_name]
W powyższym zapytaniu musisz podać nazwę tabeli tbl_name . Możesz także opcjonalnie określić zestaw znaków charset_name i sortowanie collation_name .
Przeczytaj dodatkowe:Najlepsze blogi z bazami danych do obserwowania
Oto przykład zmiany sortowania wszystkich tabel bazy danych na utf8_general_ci. Zastąp nazwa_bazy i nazwa_tabeli poniżej odpowiednio z nazwami baz danych i pól.
alter table database_name.table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
Jeśli chcesz zmienić sortowanie wszystkich tabel w bazie danych, musisz uruchomić powyższe zapytanie dla każdej tabeli osobno.
Ponieważ może to być bardzo żmudne, tworzymy zapytanie SELECT, które generuje instrukcje tabeli ALTER dla każdej tabeli w naszej bazie danych. Po pierwsze, oto zapytanie SELECT, które zwraca wszystkie szczegóły dotyczące tabeli w Twojej bazie danych.
SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA="database_name"
AND TABLE_TYPE="BASE TABLE";
Przeczytaj bonus:Najlepsze alternatywy dla MySQL Workbench
Zmodyfikujemy powyższe zapytanie SELECT, aby utworzyć instrukcję ALTER TABLE dla każdej tabeli w Twojej bazie danych.
Oto zapytanie wybierające, które wygeneruje zapytania SQL dla wszystkich tabel w Twojej bazie danych. Zastąp nazwa_bazy i collation_name poniżej ze swoją bazą danych i nazwami sortowania i uruchom go, aby wygenerować zapytania SQL w celu zmiany sortowania wszystkich tabel w Twojej bazie danych.
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";
Przeczytaj bonus:Jak włączyć logowanie powolnych zapytań w MySQL
Oto kolejne zapytanie SQL zmieniające sortowanie wszystkich tabel na 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'
Gdy masz już listę zapytań ALTER TABLE dla każdej tabeli, możesz je skopiować, wkleić i uruchomić, aby zmienić sortowanie wszystkich tabel.
Mamy nadzieję, że powyższy artykuł pomoże Ci zmienić sortowanie wszystkich tabel w bazie danych w MySQL.