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还会执行。
存储MySQLif else

解决方案 »

  1.   

    if else 的用户和sql serve的差别在哪。。迷糊了
      

  2.   

    发现是 null要用isCREATE 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;
      

  3.   

    IF v_PlatScore  is NULL
      

  4.   

    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;