触发器也是数据库中比较重要的部分,它的出现简化了某些操作。比如当一个学生被一个学校录取后,它的基本信息就要录入学校的数据库,数据可能录入到不同的表中,这样我们可以创建一个触发器,当学生的学籍信息被添加后,就要触发触发器,触发器去执行一系列的SQL语句,比如说添加学生到学校的班级表,宿舍住宿表等。
DELIMITER $$
CREATE
TRIGGER `jeesite_mysql`.`hyTrigger` BEFORE UPDATE
ON `jeesite_mysql`.`tywhuiy`
FOR EACH ROW BEGIN
DECLARE top_hyid VARCHAR(50) DEFAULT '';/*上一级会员ID*/
DECLARE ss_hyid VARCHAR(50) DEFAULT '';/*上上一级会员ID*/
DECLARE add_hyjf INT(11);/*给充值加会员积分*/
DECLARE add_top_jf INT(11);/*给充值会员的上一级会员加的积分*/
DECLARE add_ss_jf INT(11);/*给充值会员的上上一级会员加的积分*/
IF (new.DANQZT='1')
THEN
SELECT `HYJG`,`ZJHYFL`,`JJHYFL` INTO add_hyjf,add_top_jf,add_ss_jf FROM`jeesite_mysql`.`tyhjj` LIMIT 0,1;
SELECT `TYW_ID` INTO top_hyid FROM `jeesite_mysql`.`tywhuiy` WHERE id=new.id LIMIT 0,1;
SELECT `TYW_ID` INTO ss_hyid FROM `jeesite_mysql`.`tywhuiy` WHERE id=top_hyid LIMIT 0,1;
INSERT INTO `jeesite_mysql`.`thyjfjl` (`ID`,`TYW_ID`,`JIF`,`HUODTM`,`DHBS`) VALUES (REPLACE(UUID(), '-', ''),new.id,add_hyjf,NOW(),'0');
IF (top_hyid <> '') THEN
INSERT INTO `jeesite_mysql`.`thyjfjl` (`ID`,`TYW_ID`,`JIF`,`HUODTM`,`DHBS`) VALUES (REPLACE(UUID(), '-', ''),top_hyid,add_top_jf ,NOW(),'0') ;
IF (ss_hyid <> '') THEN
INSERT INTO `jeesite_mysql`.`thyjfjl` (`ID`,`TYW_ID`,`JIF`,`HUODTM`,`DHBS`) VALUES (REPLACE(UUID(), '-', ''),ss_hyid,add_ss_jf,NOW(),'0') ;
END IF;
END IF;
END IF;
END$$
DELIMITER ;
我写的是一个会员充值成功后进行对会员的加积分的操作。那个会员是我发展的,我就是那个会员的上一级会员,发展的会员,如果他充值的话,也会给你增加适当的积分。