免费注册 查看新帖 |

Chinaunix

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

mysql自定义函数格式问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-04-22 11:23 |只看该作者 |倒序浏览
本帖最后由 water1913 于 2013-04-22 11:25 编辑

1
2 truncate table active_pay_user;
3 truncate table active_level;
4
... ...

73 DROP PROCEDURE if exists la;
74
75 CREATE PROCEDURE `la`()
76 BEGIN
77 declare i integer;
78 set i=1;
79 while i<61
80 DO
81
82 SET @laa :=(SELECT COUNT(level) FROM active_log_user WHERE level=i AND dtime=UNIX_TIMESTAMP(CURDATE()) GROUP BY level);
83
84 UPDATE active_level SET loyal=@laa WHERE `level`=i;
85
86 set i :=i+1;
87 end while;
88 end;
89
90 CALL la();



[root@koki record]# mysql -hlocalhost -uroot -padmin -Dwoh < /root/record/data_total.sql
ERROR 1064 (42000) at line 75: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3


函数上上下下加 ``  我单独的和一起的都试过了 还是会报这个错
文件格式是没问题的 因为去掉函数是可以跑的

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
2 [报告]
发表于 2013-04-22 16:22 |只看该作者
好像写函数什么的都要用到 delimiter 这个单词,不知道是不是这个问题。

论坛徽章:
0
3 [报告]
发表于 2013-04-22 17:56 |只看该作者
回复 2# seesea2517



delimiter //

DROP PROCEDURE if exists la;

CREATE PROCEDURE la()
BEGIN
declare i integer;
set i=1;
while i<61
DO



set i :=i+1;
end while;
end;

CALL la();

//                加成这样 就行了   太感谢   感觉5.5下这个单词和网上找的用法有点不一样    大都是加 $$


   

论坛徽章:
8
综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-09-14 06:20:00金牛座
日期:2014-10-10 11:23:34CU十二周年纪念徽章
日期:2013-10-24 15:41:34酉鸡
日期:2013-10-19 10:17:1315-16赛季CBA联赛之北京
日期:2017-03-06 15:12:44
4 [报告]
发表于 2013-04-23 13:13 |只看该作者
delimiter是定界符而已,使用什么作为定界符是很随意的,默认的定界符是;,也就是我们sql最后面的结束标志

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
5 [报告]
发表于 2013-04-23 14:22 |只看该作者
回复 3# water1913


    嗯,楼上版主说的是对的,你可以把 // 改成 $$ 试试也是可以的。从兼容性来说也是不可能做出这么诡异的不兼容改动的。建议喜欢美元的同学多用 $$,喜欢用 c++ 的同学就习惯的用 // 吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP