我想更改我的數據庫中存在的所有表的字符集。 要更改字符集一個表,我可以執行它:如何在mysql中一次更改多個表
"alter table mydb.mytable1 CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_Ci;"
,但我有我的「我的數據庫」數據庫許多表。 我們可以從information_schema表中讀取的表的列表。 但我不知道如何形成精確查詢,以便與一個查詢我可以一次更改所有表的字符集。
我想更改我的數據庫中存在的所有表的字符集。 要更改字符集一個表,我可以執行它:如何在mysql中一次更改多個表
"alter table mydb.mytable1 CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_Ci;"
,但我有我的「我的數據庫」數據庫許多表。 我們可以從information_schema表中讀取的表的列表。 但我不知道如何形成精確查詢,以便與一個查詢我可以一次更改所有表的字符集。
ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;
注意:使用
"utf8_unicode_ci"
代替"utf8_general_ci"
所以,如果你不能做到這一點使用ALTER DB,那麼你必須爲每個表運行此單獨
-- https://stackoverflow.com/a/39465494/819417
SELECT concat('ALTER TABLE ', TABLE_NAME, ' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;')
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'your_db_name'
然後複製/粘貼所有結果,並使用db工具或腳本語言逐個運行它們。
要解決未來的表,因爲你添加它們,運行此還有:
ALTER DATABASE your_db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
你可以改變數據庫。 – Manwal 2014-09-22 10:21:07