免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: xiaozhenggang
打印 上一主题 下一主题

mysql存储过程有诡了!!!! [复制链接]

论坛徽章:
0
11 [报告]
发表于 2011-11-18 21:31 |只看该作者
回复 7# 飞鸿无痕


    命令行到还没试过

论坛徽章:
0
12 [报告]
发表于 2011-11-18 21:32 |只看该作者
回复 8# kerlion


    我用navicat建立连接的时候用的就是root

论坛徽章:
0
13 [报告]
发表于 2011-11-18 21:34 |只看该作者
回复 9# kerlion


    没有的,我们客户用的都是xampp集成环境,没开bin-log,就更别说复制了

论坛徽章:
0
14 [报告]
发表于 2011-11-21 16:46 |只看该作者
本帖最后由 xiaozhenggang 于 2011-11-21 16:54 编辑

发现在终端直接输入可以正常执行
mysql> DELIMITER //
mysql> CREATE DEFINER=`root`@`localhost` PROCEDURE `xxxx`()
BEGIN
    -> UPDATE spkcb  SET ck_id= IFNULL((SELECT cangku.id FROM cangku  WHERE cangku.ck                                                                   dm=spkcb.ckdm),-1);
    -> DELIMITER ;     UPDATE spkcb  SET goods_id= IFNULL((SELECT goods.goods_id FROM good                                                                   s  WHERE goods.goods_sn=spkcb.goods_sn),-1);
    -> UPDATE spkcb SET color_id =  IFNULL((SELECT goods_color.color_id FROM goods_co                                                                   lor,color  WHERE  goods_color.color_id=color.color_id AND goods_color.goods_id=spkcb.goods                                                                   _id AND color.color_code=spkcb.color_code),-1);
    -> UPDATE spkcb SET size_id =  IFNULL((SELECT goods_size.size_id FROM goods_size,                                                                   size  WHERE  goods_size.size_id=size.size_id AND goods_size.goods_id=spkcb.goods_id AND si                                                                   ze.size_code=spkcb.size_code),-1);
    -> DELETE FROM spkcb WHERE ck_id=-1 OR goods_id=-1 OR color_id=-1 OR size_id=-1;
    -> SELECT 1 AS MID;
    -> END
    -> //
Query OK, 0 rows affected (0.22 sec)

mysql> DELIMITER ;

mysql> show create procedure xxxx\G;
*************************** 1. row ***************************
           Procedure: xxxx
            sql_mode:
    Create Procedure: CREATE DEFINER=`root`@`localhost` PROCEDURE `xxxx`()
BEGIN
     UPDATE spkcb  SET ck_id= IFNULL((SELECT cangku.id FROM cangku  WHERE cangku.ckdm=spkc                                                                   b.ckdm),-1);
     UPDATE spkcb  SET goods_id= IFNULL((SELECT goods.goods_id FROM goods  WHERE goods.goo                                                                   ds_sn=spkcb.goods_sn),-1);
     UPDATE spkcb SET color_id =  IFNULL((SELECT goods_color.color_id FROM goods_color,col                                                                   or  WHERE  goods_color.color_id=color.color_id AND goods_color.goods_id=spkcb.goods_id AND                                                                    color.color_code=spkcb.color_code),-1);
     UPDATE spkcb SET size_id =  IFNULL((SELECT goods_size.size_id FROM goods_size,size  W                                                                   HERE  goods_size.size_id=size.size_id AND goods_size.goods_id=spkcb.goods_id AND size.size                                                                   _code=spkcb.size_code),-1);
     DELETE FROM spkcb WHERE ck_id=-1 OR goods_id=-1 OR color_id=-1 OR size_id=-1;
     SELECT 1 AS MID;
END
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: utf8_general_ci
1 row in set (0.00 sec)

这是为什么?

论坛徽章:
0
15 [报告]
发表于 2011-11-21 16:55 |只看该作者
回复 5# xiaozhenggang


    创建的时候没有用 DEFINER=`root`@`localhost`;而在创建后用show create procedure 查看创建信息却包含了DEFINER=`root`@`localhost`;什么情况?

论坛徽章:
0
16 [报告]
发表于 2011-11-21 16:55 |只看该作者
回复 14# xiaozhenggang


    navicat上执行SELECT CURRENT_USER();  贴一下结果,查询出的用户执行show grants for 贴一下那个用户的权限!

论坛徽章:
0
17 [报告]
发表于 2011-11-21 17:27 |只看该作者
回复 16# 飞鸿无痕


    select current_user();
    结果:root@localhost
   


   show grants for root@localhost;
     结果:GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION

论坛徽章:
0
18 [报告]
发表于 2011-11-21 17:42 |只看该作者
回复 17# xiaozhenggang

我认为应该是你的客户端的问题了,换成sqlyog看看是否有问题,一直用sqlyog没有出现过类似的问题!

论坛徽章:
0
19 [报告]
发表于 2011-11-22 10:29 |只看该作者
本帖最后由 xiaozhenggang 于 2011-11-22 10:38 编辑

回复 18# 飞鸿无痕


    我用sqlyog试过,一样的错误提示........

论坛徽章:
0
20 [报告]
发表于 2011-11-22 10:44 |只看该作者
回复 19# xiaozhenggang

真是见鬼了,有了结果或者知道原因了告诉我一下,呵呵,我想知道为什么!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP