我已經從本地機器導入了一個數據庫到服務器機器。導入數據庫時,數據庫的字符集值由系統默認設置爲「拉丁文」。我已將數據庫的字符集更改爲「utf8
」。但是,數據庫排序規則值的存儲過程不會被修改。目前它是「latin1_swedish_ci
」。如何爲所有存儲過程將數據庫歸類值從「latin1_swedish_ci
」更改爲「utf8_general_ci
」。更改MySQL存儲過程'數據庫整理'名稱
SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = DB_Name;
USE DB_Name;
ALTER DATABASE DB_Name
DEFAULT CHARACTER SET = utf8
DEFAULT COLLATE=utf8_general_ci;
SET NAMES UTF8;
在此先感謝。
一個選項是DROP PROCEDURE和CREATE PROCEDURE。另一個選項(不太推薦)可以手動更新數據庫mysql的'proc'表的'db_collation'列。理想的是正確配置你的MySQL服務器,然後進行導入。 – wchiquito
你可以再次運行導入嗎?我想在導入之前解決這個問題。在開始導入之前,更容易指定正確的編碼。你的數據庫轉儲包含SET NAMES命令嗎? – olegsv
@olegsv是的,你是對的。在導入包含SET NAMES的數據庫轉儲和轉儲之前,我解決了這個問題。 – Nisar