我已经从本地机器导入了一个数据库到服务器机器。导入数据库时,数据库的字符集值由系统默认设置为“拉丁文”。我已将数据库的字符集更改为“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