>  기사  >  데이터 베이스  >  一个简单MySQL触发器例子_MySQL

一个简单MySQL触发器例子_MySQL

WBOY
WBOY원래의
2016-06-01 13:32:30885검색

bitsCN.com

一个简单MySQL触发器例子

 

有这样一个需求,更新某张表的某个字段时,要先判断,如果新值比表中老值小,则将老值和新值相加,然后更新;否则正常更新。考虑用MySQL的触发器实现,更新时触发。

下面是具体的sql, 一看便知。

 

[sql] 

-- 删除触发器  

DROP TRIGGER trigger_ads;  

  

-- 创建触发器  

DELIMITER //  

CREATE TRIGGER trigger_ads BEFORE UPDATE ON stats_ads  

FOR EACH ROW  

BEGIN      

    IF OLD.VIEW > NEW.VIEW THEN    

        SET NEW.VIEW = OLD.VIEW + NEW.VIEW;  

    END IF;  

    IF OLD.view_unique > NEW.view_unique THEN    

    SET NEW.view_unique = OLD.view_unique + NEW.view_unique;  

    END IF;  

    IF OLD.click > NEW.click THEN    

    SET NEW.click = OLD.click + NEW.click;  

    END IF;  

    IF OLD.click_unique > NEW.click_unique THEN    

    SET NEW.click_unique = OLD.click_unique + NEW.click_unique;  

    END IF;  

    IF OLD.START > NEW.START THEN    

    SET NEW.START = OLD.START + NEW.START;  

    END IF;  

    IF OLD.start_unique > NEW.start_unique THEN    

    SET NEW.start_unique = OLD.start_unique + NEW.start_unique;  

    END IF;  

    IF OLD.landing > NEW.landing THEN    

    SET NEW.landing = OLD.landing + NEW.landing;  

    END IF;  

    IF OLD.landing_unique > NEW.landing_unique THEN    

    SET NEW.landing_unique = OLD.landing_unique + NEW.landing_unique;  

    END IF;  

END;  

//  

最后可以通过下面sql语句查看所有触发器:

[sql] 

-- 查看mysql触发器  

SELECT * FROM information_schema.`TRIGGERS`;  

 

bitsCN.com
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.