求帮助为啥本人的mysql设定数字一直报错

MySql 码拜 5年前 (2016-06-04) 410次浏览
mysql 版本5.7.13 windows下面运行
本人的代码:create table nums(a int unsigned not null primary key) engine=innodb;(运行不出错)
create peocedure  pcreatenums (cnt int unsigned)
begin
declare s int unsigned default 1;(始终是说本人的1后面少了分号,但是本人的输入法一直对的,也一直加了分号,运行一直出错怎么办)
小白刚学习不久,求指导答。已经出现第二次这种情况,网上也没找到和本人一样的问题的人。
解决方案

15

DELIMITER $$
create table nums(a int unsigned not null primary key) engine=innodb;(运行不出错)
create peocedure  pcreatenums (cnt int unsigned)
begin
declare s int unsigned default 1;
..

ene$$
DELIMITER ;

10

mysql 中的存储过程是这样的:

mysql> delimiter $$
mysql> create procedure clean()
    -> modifies sql data
    -> begin
    -> delete from t1;
    -> end$$
Query OK, 0 rows affected (0.20 sec)
mysql> delimiter ;
mysql> call clean();
Query OK, 1 row affected (0.20 sec)

15

引用:

谢谢各位,查了一下中文手册也发现是前面没加delimiter的缘故。同时还想麻烦各位看一下本人这个代码程序运行没有错误,但是为啥结果输出不了 workdays6  只会输出t floor (days/7)*5 +days%7
-case when 6 between wd and wd+days/7 – 1 then 1 else 0 end
-case when 7 between wd and wd+days/7 – 1 then 1 else 0 end 啊 感谢各位

你没定义别名,默认取表达式前的字符串,如 :定义Col

drop procedure if exists pgetworkdays6;
delimiter $$
create procedure pgetworkdays6(s datetime,e datetime)
begin
select floor (days/7)*5 +days%7
-case when 6 between wd and wd+days/7 - 1 then 1 else 0 end
-case when 7 between wd and wd+days/7 - 1 then 1 else 0 end as Col
from
(select datediff(e,s)+1 as days,weekday(s)+1 as wd) as a;
end $$
delimiter ;
call pgetworkdays6 ("2005-01-01","2005-12-31") ;

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明求帮助为啥本人的mysql设定数字一直报错
喜欢 (0)
[1034331897@qq.com]
分享 (0)