背景:
我使用的MariaDB,但是mysql也應該一樣,系統用的是ubuntu 16.04,我想寫一個存儲過程,存儲過程中的列名有中文字符,但是每次輸入的時候都有中文亂碼,導致無法正常輸入;
代碼大概就是這個樣子:
create procedure p_project_stat()
begin
select pro.id as 項目編號
from projects pro ;
end
但是每次到中文字符這裏就顯示亂碼,導致無法正常執行sql;
報錯信息:
ERROR 1064 (42000) at line 14 in file: '/tmp/stat.sql': You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '▒▒目編號,
遂查看數據庫的編碼格式:
show variables like '%char%';
解決辦法,執行:
set character_set_client=utf8;
成功修復,之後遇到了第二個問題,結果無法顯示中文字符,
再執行:
set character_set_results=utf8;
OK了!