更改MySQL存储过程'数据库整理&​​#39;名称

时间:2015-12-18 10:10:06

标签: mysql stored-procedures mysql-workbench

我已将本地计算机中的数据库导入服务器计算机。导入数据库时​​,DB的字符集值由系统默认设置为" Latin"。我已将字符集更改为" utf8"对于数据库。但是,不修改数据库排序规则值的存储过程。目前它是" latin1_swedish_ci"。如何更改" latin1_swedish_ci"的数据库归类值到" utf8_general_ci"对于所有存储过程。

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;

提前致谢。

1 个答案:

答案 0 :(得分:7)

正如CREATE PROCEDURE and CREATE FUNCTION Syntax所述(强调补充):

  

如果不存在CHARACTER SETCOLLATE属性,则使用时在常规创建时生效的数据库字符集和排序规则。为避免服务器使用数据库字符集和排序规则,请为字符数据参数提供显式CHARACTER SETCOLLATE属性。

     

如果更改数据库默认字符集或排序规则,则必须删除并重新创建使用数据库默认值的存储例程,以便它们使用新的默认值。