免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1625 | 回复: 7
打印 上一主题 下一主题

奇怪的存储过程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-02 14:45 |只看该作者 |倒序浏览
数据库有个表(consortia),终端用GBK(set names gbk)是可以正常读取的(select * from consortia;)

后来做个存储过程;
CREATE PROCEDURE `SP_SELECT_CONSORTIA_BASE_INFO`()
BEGIN      
        select *  from consortia ;
END ;;
delimiter ;

当在拉丁和utf8下  call SP_SELECT_CONSORTIA_BASE_INFO()时存储过程可以正常运行  但是是乱码
当在GBK下面时  call SP_SELECT_CONSORTIA_BASE_INFO()  却卡隹了  不会动  从另一个终端看  好像没运行一样

后来改了一下存储过程
CREATE PROCEDURE `SP_SELECT_CONSORTIA_BASE_INFO`()
BEGIN      
        select *  from consortia order by id;
END ;;
delimiter ;

就加了个  order by id   使用GBK就正常了

请大家指教一下这是什么原因






早上又出问题了  用ordre by id不行了   改用了limit 1000  又可以了。这个表的数据量并不大

[ 本帖最后由 cyscg 于 2009-11-3 10:26 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-11-02 16:06 |只看该作者
请LZ提供一些信息:
mysql 版本
操作系统版本

两个字符集下的:
explain extended select * from consortia;

论坛徽章:
0
3 [报告]
发表于 2009-11-02 17:14 |只看该作者

回复 #2 Coolriver 的帖子

谢谢2楼的关注

mysql    Server version: 5.0.77
system  centos 5.3
两个字符集下select 都是可以出结果的(当然utf8下显示的是乱码),explain的结果也是一样
只是在存储过程的时候gbk的就不行

论坛徽章:
0
4 [报告]
发表于 2009-11-02 17:21 |只看该作者
MySQL 的error log 里有报错吗?

论坛徽章:
0
5 [报告]
发表于 2009-11-02 17:33 |只看该作者

回复 #4 Coolriver 的帖子

没有错误日志,
刚才发现导出来  删了数据库再导回去  就可以用,但用了几次以后又不行了

论坛徽章:
1
白银圣斗士
日期:2015-11-23 08:33:04
6 [报告]
发表于 2009-11-02 17:53 |只看该作者
原帖由 cyscg 于 2009-11-2 17:33 发表
没有错误日志,
刚才发现导出来  删了数据库再导回去  就可以用,但用了几次以后又不行了

方便不方便把你的那个结构和数据搞上来看看?utf8编码。

论坛徽章:
9
每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00数据库技术版块每周发帖之星
日期:2016-03-07 16:30:25
7 [报告]
发表于 2009-11-02 22:17 |只看该作者
感觉像是select 语句本身的问题,是不是表数据内容很大,而网络状况不是很好?导致select语句卡住。

另外你卡住的现象是什么?下一个提示符不出现?那用show processlist显示是什么结果呢?

论坛徽章:
0
8 [报告]
发表于 2009-11-03 10:24 |只看该作者
回复 #6 枫影谁用了 的帖子
库用的是utf编码   之前我也一直觉得是  编码问题  但后面查看后觉得不像
+----------------+--------------------------+------+-----+----------+----------------+
| Field          | Type                     | Null | Key | Default  | Extra          |
+----------------+--------------------------+------+-----+----------+----------------+
| id             | int(4) unsigned          | NO   | PRI | NULL     | auto_increment |
| name           | char(64)                 | NO   | PRI | NULL     |                |
| placard        | char(12                | YES  |     | NULL     |                |
| business_name1 | char(32)                 | YES  |     | 会长     |                |
| business_name2 | char(32)                 | YES  |     | 副会长   |                |
| business_name3 | char(32)                 | YES  |     | 理事     |                |
| business_name4 | char(32)                 | YES  |     | 精英     |                |
| business_name5 | char(32)                 | YES  |     | 会员     |                |
| business_name6 | char(32)                 | YES  |     | 见习会员 |                |
| found          | int(4) unsigned zerofill | YES  |     | 0000     |                |
| bijou          | int(4) unsigned zerofill | YES  |     | 0000     |                |
| LV             | int(4) unsigned          | YES  |     | 0        |                |
| honor          | int(4) unsigned zerofill | YES  |     | 0000     |                |
| altar_info     | varchar(1000)            | YES  |     | NULL     |                |
| camp           | tinyint(1) unsigned      | NO   |     | 2        |                |
+----------------+--------------------------+------+-----+----------+---------------


回复 #7楼 的帖子
select 本身并没有问题 ,只有在存储过程时会出这个问题。是在本机的终端上执行的并不会有网络问题。show processlist.没有发现任何执行语句,CPU也没占用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP