ホームページ  >  記事  >  データベース  >  一个简单MySQL触发器例子_MySQL

一个简单MySQL触发器例子_MySQL

WBOY
WBOYオリジナル
2016-06-01 13:32:30919ブラウズ

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 までご連絡ください。