mysql触发器 之后_mySQL触发器在控制台插入后工作,但在脚本插入之后不起作用...

我的扳机有问题。在

我设置了一个触发器,用于在表中插入后更新其他表。在

如果我从MySQL控制台进行插入,一切都很好,但是如果我从外部python脚本插入相同的数据,触发器什么也不做,如下所示。在

我尝试将定义器更改为“user”@“%”和“root”@“%”,但它仍然没有任何作用。在mysql> select vid_visit,vid_money from videos where video_id=487;

+-----------+-----------+

| vid_visit | vid_money |

+-----------+-----------+

| 21 | 0.297 |

+-----------+-----------+

1 row in set (0,01 sec)

mysql> INSERT INTO `table`.`validEvents` ( `id` , `campaigns_id` , `video_id` , `date` , `producer_id` , `distributor_id` , `money_producer` , `money_distributor` , `type` ) VALUES ( NULL , '30', '487', '2010-05-20 01:20:00', '1', '0', '0.009', '0.000', 'PRE' );

Query OK, 1 row affected (0,00 sec)

mysql> select vid_visit,vid_money from videos where video_id=487;

+-----------+-----------+

| vid_visit | vid_money |

+-----------+-----------+

| 22 | 0.306 |

+-----------+-----------+

DROP TRIGGER IF EXISTS `updateVisitAndMoney`//

CREATE TRIGGER `updateVisitAndMoney` BEFORE INSERT ON `validEvents`

FOR EACH ROW BEGIN

if (NEW.type = 'PRE') THEN

SET @eventcash=NEW.money_producer + NEW.money_distributor;

UPDATE campaigns SET cmp_visit_distributed = cmp_visit_distributed + 1 , cmp_money_distributed = cmp_money_distributed + NEW.money_producer + NEW.money_distributor WHERE idcampaigns = NEW.campaigns_id;

UPDATE offer_producer SET ofp_visit_procesed = ofp_visit_procesed + 1 , ofp_money_procesed = ofp_money_procesed + NEW. money_producer WHERE ofp_video_id = NEW.video_id AND ofp_money_procesed = NEW. campaigns_id;

UPDATE videos SET vid_visit = vid_visit + 1 , vid_money = vid_money + @eventcash WHERE video_id = NEW.video_id;

if (NEW.distributor_id != '') then

UPDATE agreements SET visit_procesed = visit_procesed + 1, money_producer = money_producer + NEW.money_producer, money_distributor = money_distributor + NEW.money_distributor WHERE id_campaigns = NEW. campaigns_id AND id_video = NEW.video_id AND ag_distributor_id = NEW.distributor_id;

UPDATE eventForDay SET visit = visit + 1, money = money + NEW. money_distributor WHERE date = SYSDATE() AND campaign_id = NEW. campaigns_id AND user_id = NEW.distributor_id;

UPDATE eventForDay SET visit = visit + 1, money = money + NEW.money_producer WHERE date = SYSDATE() AND campaign_id = NEW. campaigns_id AND user_id= NEW.producer_id;

ELSE

UPDATE eventForDay SET visit = visit + 1, money = money + NEW. money_producer WHERE date = SYSDATE() AND campaign_id = NEW. campaigns_id AND user_id = NEW.producer_id;

END IF;

END IF;

END

//


版权声明:本文为weixin_39551996原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。