mysql 存储过程中的if 判断问题

wucj2008me 2013-06-01 03:12:40



CREATE PROCEDURE pro_currency_business(
IN in_UserID BIGINT, /*用户ID*/
OUT out_Flag INT /*返回参数 0成功,<0 查找数据字典*/
)
BEGIN
DECLARE v_PlatScore bigint;

SELECT user_plat_score INTO v_PlatScore FROM t_plat_score WHERE user_id=in_UserID;
IF v_PlatScore =NULL THEN SELECT -2001 INTO out_Flag;/*此帐号没有币记录*/
ELSE
INSERT t_plat_money_log(user_id,score_original)
VALUES( in_UserID,v_PlatScore );
END IF;

错误提示:[Err] 1048 - Column 'score_original' cannot be null
这个不是在前面的if语句的判断了吗,为什么if下面的else还会执行。
...全文
1289 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rotel-刘志东 2013-06-01
  • 打赏
  • 举报
回复
CREATE PROCEDURE pro_currency_business( IN in_UserID BIGINT, /*用户ID*/ OUT out_Flag INT /*返回参数 0成功,<0 查找数据字典*/ ) BEGIN ECLARE v_PlatScore bigint; SELECT user_plat_score INTO v_PlatScore FROM t_plat_score WHERE user_id=in_UserID; IF v_PlatScore IS NULL THEN SELECT -2001 INTO out_Flag;/*此帐号没有币记录*/ ELSE INSERT t_plat_money_log(user_id,score_original) VALUES( in_UserID,v_PlatScore ); END IF; END;
rucypli 2013-06-01
  • 打赏
  • 举报
回复
IF v_PlatScore is NULL
wucj2008me 2013-06-01
  • 打赏
  • 举报
回复
自问自答了。。。
wucj2008me 2013-06-01
  • 打赏
  • 举报
回复
发现是 null要用is CREATE PROCEDURE pro_currency_business( IN in_UserID BIGINT, /*用户ID*/ OUT out_Flag INT /*返回参数 0成功,<0 查找数据字典*/ ) BEGIN DECLARE v_PlatScore bigint; SELECT user_plat_score INTO v_PlatScore FROM t_plat_score WHERE user_id=in_UserID; IF v_PlatScore is NULL THEN SELECT -2001 INTO out_Flag;/*此帐号没有币记录*/ ELSE INSERT t_plat_money_log(user_id,score_original) VALUES( in_UserID,v_PlatScore ); END IF;
wucj2008me 2013-06-01
  • 打赏
  • 举报
回复
if else 的用户和sql serve的差别在哪。。迷糊了

56,678

社区成员

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

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