mysql 触发器 if语句用法 5

BEGINDECLAREi_jcidVARCHAR(50);DECLAREi_jkcxVARCHAR(50);DECLAREi_jksjVARCHAR(50);DECLA... BEGIN
DECLARE i_jcid VARCHAR(50);
DECLARE i_jkcx VARCHAR(50);
DECLARE i_jksj VARCHAR(50);
DECLARE i_result VARCHAR(100) default '';
DECLARE i_did VARCHAR(50);
DECLARE i_locoID VARCHAR(50);

-- DECLARE i_hzkssj VARCHAR(50); -- 判断换装开始时间

select id,jkcx,jksj,dhzfa_id,locoID into i_jcid, i_jkcx, i_jksj,i_did,i_locoID from t_bbjk_hzjc t where t.locoID=(select id from t_bbjk_locoinfo where locoNo=new.jcbh and locoTypeCode=new.jcxh and abj=new.AOrB)
and t.state<2 and (t.jkcx=new.ACX or t.jksj= new.ASJ) LIMIT 1;
if i_jcid!='' and i_jcid!=null then
if i_jkcx='' or i_jkcx=null then set i_result = CONCAT(i_result,'00');
elseif i_jkcx!='' and i_jkcx!=null and i_jkcx=new.ACX then set i_result = CONCAT(i_result,'11');
else
set i_result = CONCAT(i_result,'22');
end if;
if i_jksj='' or i_jksj=null then set i_result = CONCAT(i_result,'00');
elseif i_jksj!='' and i_jksj!=null and i_jksj=new.ASJ then set i_result = CONCAT(i_result,'11');
else
set i_result = CONCAT(i_result,'22');
end if;
set i_result = CONCAT(i_result,'000000000000000');
elseif i_jcid='' or i_jcid=null then
set i_result='AAAAAAAAAAAAAAAAAAA';
else set @tmp=1;
end if;
update t_bbjk_hzjc set state='3',hzPersonGH=new.hzr,hzTime=new.jlsj,fhPersonGH=new.fhr,hzdd=new.hzdd,lyflag='0' where id=i_jcid;-- i_jcid 为空不影响,有值执行更新
.................

END
if语句应该怎么写,哪位大神给指导一下,在线等,我上面这样写是有问题的,求指导
展开
 我来答
匿名用户
2017-08-24
展开全部
mysql 触发器 if语句用法
@sqlz ='select asd from flkg';
EXECUTE(@sqlz);

----------
首先,mysql下动态语句不是这样写的,另外,触发器里不能允许返回结果集的.

这里我是希望他能中断更新!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式