mysql数据库之编码重新设置
2014-09-28 09:23
190 查看
最近在使用使用mysql数据库的存储过程的时候,发现一些问题,数据库编码和表格、字段的编码不一致
导致运行的时候出现问题,错误提示:1267 - Illegal mix of collations
通过网上的一些方法解决了数据库系统本身的编码,还有边个的编码,但还是没有解决问题,
然后建表的语句导出来看看:
发现问题了,虽然数据库和表格的编码都是一样了,但是字段的编码还不一样,所以需要重新建立表格,
这样就解决问题了,不需要重装什么数据库,
我发现问题是写的一个存储过程里面出现的,顺便把存储过程放出来,就是实现两个字符串的比较
导致运行的时候出现问题,错误提示:1267 - Illegal mix of collations
通过网上的一些方法解决了数据库系统本身的编码,还有边个的编码,但还是没有解决问题,
然后建表的语句导出来看看:
CREATE TABLE `dev_info` ( `id` int(11) NOT NULL AUTO_INCREMENT , `dev_id` int(10) NOT NULL , `dev_sta` int(5) NOT NULL , `sta_name` varchar(5) CHARACTER SET A COLLATE A_ci NOT NULL , `sessionID` varchar(50) CHARACTER SET A COLLATE A_ci NULL DEFAULT NULL , PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARACTER SET=gb2312 COLLATE=gb2312_chinese_ci AUTO_INCREMENT=13 ROW_FORMAT=COMPACT ; 编码 A A_ci 只是我举个例子的啊,就是和 gb2312 不一样的编码,
发现问题了,虽然数据库和表格的编码都是一样了,但是字段的编码还不一样,所以需要重新建立表格,
建表: CREATE TABLE `dev_info` ( `id` int(11) NOT NULL AUTO_INCREMENT , `dev_id` int(10) NOT NULL , `dev_sta` int(5) NOT NULL , `sta_name` varchar(5) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NOT NULL , `sessionID` varchar(50) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NULL DEFAULT NULL , PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARACTER SET=gb2312 COLLATE=gb2312_chinese_ci AUTO_INCREMENT=13 ROW_FORMAT=COMPACT ;
这样就解决问题了,不需要重装什么数据库,
我发现问题是写的一个存储过程里面出现的,顺便把存储过程放出来,就是实现两个字符串的比较
CREATE DEFINER = `root`@`localhost` PROCEDURE `NewProc`(IN `app_dev_id` int,OUT `app_session_id` varchar(50)) BEGIN #Routine body goes here... DECLARE var INT; SET var = (SELECT COUNT(*) FROM mysql_proce.dev_info WHERE dev_id=app_dev_id); IF var=1 THEN SELECT sessionID INTO app_session_id FROM mysql_proce.dev_info WHERE dev_id=app_dev_id; END IF; END;
相关文章推荐
- 设置Mysql数据库的默认编码为utf8
- 将mysql数据库设置成utf8编码时插入查询中文乱码终极解决方案
- mysql数据库字符集编码查看以及设置
- mysql的安装、C++访问mysql数据库、编码设置问题
- 如何设置Mysql数据库默认的字符集编码为GBK
- [原创]如何设置Mysql数据库默认的字符集编码为GBK
- 设置mysql数据库的编码方式
- 将mysql数据库设置成utf8编码时插入查询中文乱码
- 设置mysql数据库编码格式
- mysql数据库编码设置成utf-8,避免出现乱码
- 将mysql数据库设置成utf8编码时插入查询中文乱码终极解决方案
- 如何设置mysql数据库为utf-8编码
- red hat 中重新设置mysql数据库
- 设置mysql数据库的默认编码为gbk,解决中文乱码
- linux下mysql数据库字符编码设置
- 如何设置mysql数据库为utf-8编码
- PreparedStatement 查询mysql数据库的编码类型设置
- 如何设置mysql数据库编码
- 设置MYSQL数据库编码为UTF-8
- mysql数据库编码设置