mysql - IS NULL 和 IS NOT NULL 在存储过程中被忽略
问题描述
我正在尝试执行存储过程,但存储过程中 IS NOT NULL 的查询被忽略。这只发生在存储过程中......当我尝试只执行查询时,按预期工作。为什么会这样?
CREATE PROCEDURE `register_customer`(
IN IDENTIFICATION_ VARCHAR(45),
IN PHONENUM_ VARCHAR(20),
IN TAC_ VARCHAR(6)
)
BEGIN
DECLARE CONTINUE HANDLER FOR NOT FOUND SET @dummyVar := 1;
DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING
BEGIN
GET DIAGNOSTICS CONDITION 1 @p1 = RETURNED_SQLSTATE, @p2 = MESSAGE_TEXT;
select 0 as procStatus, @p2 as procMsg;
ROLLBACK;
END;
SET autocommit=0;
MyScope:BEGIN
set @err := '';
START TRANSACTION;
#set @systemActivities := ACTIVITYDETAILS_;
#filter
SET @custLoginID := (SELECT id FROM customer_login WHERE identification = IDENTIFICATION_ and phonenum=PHONENUM_);
if @custLoginID is not null then
set @err := 'Customer Exist';
LEAVE MyScope;
end if;
SET @tacid := (SELECT id FROM tac WHERE phonenum=PHONENUM_ AND tac=TAC_ AND verified IS NOT null);
if @tacid is null then
set @tacid := 'Not Verified';
LEAVE MyScope;
end if;
COMMIT;
END;
SET autocommit=1;
if @err != '' then
select 0 as procStatus, @err as errorDesc;
else
select 1 as procStatus , @tacid as tacId;
end if;
END
解决方案
推荐阅读
- sas - Sas 宏:对数组中的每个元素运行宏
- microsoft-graph-api - 错误: createdDateTime 在 /beta/users 中为空
- javascript - 函数式编程接口js
- ios - 是否可以通过提供 iCloud 凭据的任何应用程序/工具从 iCloud(公共、共享、私有)中获取所有备份数据而无需越狱?
- javascript - 关联性和优先级是特定于平台的标准或实现吗?
- swift - @3x 设备上的 UIView 帧不正确
- javascript - 在 Highcharts 中使用 pointPadding 更改条形宽度
- laravel - 未找到基表或视图:1146 表
- vba - Excel 2013 无法解析 Outlook 收件人
- java - 从表中更新一列并插入新行。SQLite,Java