高手帮忙看看这个存储过程很诡异的错

nightgoblin 2016-05-18 12:06:06
请看源码:

-- 创建表
DROP TABLE IF EXISTS test;
CREATE TABLE test (
`t_A` varchar(20) NOT NULL,
`t_B` varchar(20) DEFAULT NULL,
`t_C` varchar(20) DEFAULT NULL,
`t_D` varchar(20) DEFAULT NULL,
PRIMARY KEY (`t_A`)
);
-- 创建存储过程
DROP PROCEDURE IF EXISTS p_test_a;
CREATE PROCEDURE p_test_a
(i_a VARCHAR(20),
i_b VARCHAR(20))
BEGIN
DECLARE v_b VARCHAR(20);
SET v_b='b4';
IF v_a='1' THEN
BEGIN
UPDATE test SET t_A='a4' WHERE t_B=v_b;
END;
ELSE
BEGIN
INSERT INTO test VALUES ('a5','b5','c5','d5');
END;
END IF;

BEGIN
INSERT INTO test VALUES ('a6','b6','c6','d6');
END;

IF i_b='1' THEN
BEGIN
UPDATE test SET t_A='a4' WHERE t_B=v_b;
END;
ELSE
BEGIN
INSERT INTO test VALUES ('a7','b7','c7','d7');
END;
END IF;
END;

创建p_test_a 就会报错,但是如果把后面的 IF i_b='1' THEN 去掉 就不报错

DROP PROCEDURE IF EXISTS p_test_a;
CREATE PROCEDURE p_test_a
(i_a VARCHAR(20),
i_b VARCHAR(20))
BEGIN
DECLARE v_b VARCHAR(20);
SET v_b='b4';
IF v_a='1' THEN
BEGIN
UPDATE test SET t_A='a4' WHERE t_B=v_b;
END;
ELSE
BEGIN
INSERT INTO test VALUES ('a5','b5','c5','d5');
END;
END IF;

BEGIN
INSERT INTO test VALUES ('a6','b6','c6','d6');
END;

-- IF i_b='1' THEN
BEGIN
UPDATE test SET t_A='a4' WHERE t_B=v_b;
END;
-- ELSE
BEGIN
INSERT INTO test VALUES ('a7','b7','c7','d7');
END;
-- END IF;
END;


高手帮忙解答下吧,为啥??
...全文
83 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
nightgoblin 2016-05-19
  • 打赏
  • 举报
回复
我自己找到原因了~~
nightgoblin 2016-05-18
  • 打赏
  • 举报
回复
引用 1 楼 ACMAIN_CHM 的回复:
错误提示是什么?
[Err] 1064 - 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 24 就是报这个错
ACMAIN_CHM 2016-05-18
  • 打赏
  • 举报
回复
错误提示是什么?
程序主要实现了以下功能: 1、屏幕取色 2、屏幕截图 ================================== 本程序的优点: 屏幕取色 我们的屏幕取色和其他的取色软件不一样的是,提供一个局部放大镜,让你可以把细节看得清清楚楚,不在迷迷茫茫。和一些提供局部放大镜的取色软件所不同的是,我们的局部放大镜是跟随鼠标走的。取到哪里,放大到哪里,让你不在摇头晃脑。 屏幕截图 屏幕截图工具现在貌似是输入法和IM必带的一款小工具了。QQ有,搜狗输入法有,QQ拼音输入法有。但是,很多的白领都是不上QQ的,因此QQ上并不能覆盖所有用户,而拼音输入法上虽然有,但是,还是有很多设计师是不用拼音输入法的。因此,这些并不能够覆盖所有的用户。作为专业的设计人员,安装一款较大的屏幕截图工具显然有些累赘。而使用这些不相关的截图工具也有些哑然失笑的感觉。因此,地方屏幕取色截图工具自带了这样的一个工具。让你轻轻松松工作。 在屏幕截图工具这块的设计上,我们参考了众多的屏幕截图工具,我们认为搜狗输入法自带的截图工具比较理想,因此在这方面我们参考了搜狗输入法的设计。 预定颜色 预定标准WEB色图表。因此,你可以简单的通过软件来实现WEB图表中的取色工作。轻松简单。 调色功能 显然,标准WEB色图表不能满足众多设计师的要求。而画图自带的调色功能比较鸡肋。而photoshop自带的调色功能才是众多设计师喜欢的。因此,地方软件工作室开发的地方啦取色软件,参考PS的调色功能,进行开发。 存储颜色 支持存储最近取的18个颜色。另外可以保存你想保存的颜色,支持36个。为什么不是更多?事实上,我们在开发一个项目的时候,用到的颜色是不多的。如果过于繁杂,不好,简单的界面,简单的存储,让你的工作变得轻松。我们的设计宗旨是,让软件更加快速的为您服务,而不是炫耀我们的软件技术。 除了优秀的功能,我们的软件还更加人性化考虑,在软件的细节上为各位提供了一个完美展示的平台。这些优秀的功能有: 软件皮肤化 事实上,作为一款屏幕取色软件,目前我们并没有发现其他的类似软件有这个功能的,但是,我们加上了这个功能,为什么呢?因为我们考虑,各位设计师都是设计业的行家里手,各位的个性自然是与众不同的。我们的软件可以简单的设计皮肤,就为各位设计师朋友提供了一个展示自我的平台。你完全利用我们的软件打造一款属于自己的屏幕取色软件。 因此,完全展示个性,完全体现设计师的卓越品味,我们加上了这个思维,软件皮肤化。我们欢迎大家提供自己设计的皮肤给我们,让更多的人使用! 软件文字外置化 同皮肤一样,软件上面的文字如果是固定的,那么就太低估各位的智商了,我们要的是完美,我们要的是个性。打造一款属于自己的屏幕取色器是必须的。因此,我们加上了软件文字外置化,通过修改一个简单的文本文件,就可以修改软件上的所有文字。结合软件皮肤功能,你完全能够制作一款绝对属于您自己的取色器! 此外,另外的一个考量是,通过文字外置化,我们可以简单的把软件做成繁体中文,日文版,甚至更多的语言。不过本人的语言能力有限,大家能者多劳,帮忙翻译翻译吧!地方软件工作室全体成员感谢至极! 软件操作快捷键化 作为一个设计高手,是不能容忍使用一款软件还需要去用鼠标点来点去的。因此,如果一款软件不支持快捷键简直是失败。而大多数屏幕取色软件貌似都不支持快捷键,疯啊!我们的软件可以在后台运行,你打开之后最小化就可以,在需要的时候,按一下快捷键就可以调用处功能,完全不必理会软件的存在。全心全意的去设计您的伟大作品,何必理会我们开发的软件呢? 让您更加轻松的工作,是我们的宗旨! 快捷键自定义化 没,我们支持快捷键,但是,如果快捷键不能自定义,那是失败中的失败!作为不同的设计师,其习惯是不一样的,如果大家都用一样的快捷键,那么实在是有辱个性,我们必须自己去打造一款适合自我的屏幕取色器,因此,快捷键当然要自定义,你完全的去发挥个性打造吧!我们支持!! 点击颜色即可复制代码 让软件,简单,再简单,再再简单一些吧!!!地方软件工作室在设计软件的时候无时无刻不在考虑一个问题,如何让软件更加简单一些?如何更加简单一些?再简单一些。呵呵,我们做到了。点击颜色即可复制颜色代码,点击代码即可复制对应的颜色代码。忘掉选择复制这样麻烦的操作吧!我们的软件提供给您的就是最简单的操作方式,最个性的自我展示!

56,940

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧