mysql的触发器的问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Drug_/article/details/84318559

创建触发器

CREATE TRIGGER 触发器名 BEFORE|AFTER 触发事件
ON 表名 FOR EACH ROW
BEGIN
    执行语句列表
END

其中,BEGIN与END之间的执行语句列表参数表示需要执行的多个语句,不同语句用分号隔开

tips:一般情况下,mysql默认是以 ; 作为结束执行语句,与触发器中需要的分行起冲突

     为解决此问题可用DELIMITER,如:DELIMITER ||,可以将结束符号变成||

     当触发器创建完成后,可以用DELIMITER ;来将结束符号变成;

根据 插入 来判断另一个表是否有数据 如果有数据就是更新 没有数据就是插入

BEGIN 
if(select sessionId from vpn_session_log where new.sessionId=sessionId limit 1) is NOT null THEN
UPDATE vpn_session_log SET session_time=new.session_time where sessionId=new.sessionId;  
ELSE
INSERT INTO vpn_session_log(sessionId,username,ipaddress,NasIdentifier,CallingStationId,update_time,session_time) values(new.sessionId,new.username,new.ipaddress,new.NasIdentifier,new.CallingStationId,new.update_time,new.session_time);
END if;
END

drop trigger  vpn;#删除触发器

猜你喜欢

转载自blog.csdn.net/Drug_/article/details/84318559