sql >> Databáze >  >> RDS >> Mysql

MySQL Change Collation of All Tables

Různá databázová kolace vám umožňují ukládat do databáze různé typy znaků. Ve výchozím nastavení má MySQL znakovou sadu latin1 s řazením latin1_swedish_ci. Můžete však snadno změnit mySQL řazení konkrétních tabulek, všech tabulek nebo dokonce celé databáze. Zde je návod, jak změnit řazení v MySQL.


Jak změnit řazení všech tabulek v MySQL

Podíváme se na kroky ke změně řazení v MySQL.


Zde je dotaz SQL pro změnu řazení jedné tabulky MySQL

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

Ve výše uvedeném dotazu musíte zadat název tabulky tbl_name . Volitelně můžete také zadat znakovou sadu charset_name a řazení název_třídění .

Bonusové čtení:Nejlepší databázové blogy ke sledování

Zde je příklad změny řazení všech tabulek databáze na utf8_general_ci. Nahraďte název_databáze a název_tabulky níže s názvy databáze a polí.

alter table database_name.table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

Pokud chcete změnit řazení všech tabulek v databázi, musíte výše uvedený dotaz spustit pro každou tabulku zvlášť.

Protože to může být velmi únavné, vytvoříme dotaz SELECT, který generuje příkazy tabulky ALTER pro každou tabulku v naší databázi. Nejprve je zde dotaz SELECT, který vrátí všechny podrobnosti týkající se tabulky ve vaší databázi.

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

Bonusové čtení:Nejlepší alternativy MySQL Workbench

Výše uvedený dotaz SELECT upravujeme tak, aby vytvořil příkaz ALTER TABLE pro každou tabulku ve vaší databázi.

Zde je výběrový dotaz, který vygeneruje SQL dotazy pro všechny tabulky ve vaší databázi. Nahraďte název_databáze a název_třídění níže s vaší databází a názvy řazení a spusťte jej pro generování dotazů SQL pro změnu řazení všech tabulek ve vaší databázi.

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

Bonusové čtení:Jak povolit pomalé přihlašování dotazů v MySQL

Zde je další dotaz SQL pro změnu řazení všech tabulek 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'

Jakmile budete mít seznam dotazů ALTER TABLE pro každou tabulku, můžete je zkopírovat, vložit a spustit, abyste změnili řazení všech tabulek.

Doufejme, že výše uvedený článek vám pomůže změnit řazení všech tabulek v databázi v MySQL.

  1. Jak použít metodu bindValue v klauzuli LIMIT?

  2. Změňte jazyk pro aktuální relaci na serveru SQL Server

  3. Výchozí formát DATE společnosti Oracle

  4. sp_executesql je pomalý s parametry