如何为MySQL DB创建自动更新触发器?

时间:2017-08-01 08:27:19

标签: mysql triggers sql-update

我有产品表(动态变化)和数据导出表。我需要一个触发器,每天一次将表产品中的新产品添加到表导出中。我的代码是:

CREATE TRIGGER auto_update
BEFORE UPDATE
FOR EACH ROW
SET export.name = product.prod_name, export.link=product.prod_link, export.price=product.prod_price
WHERE product.prod_type='product';

但这段代码不起作用。怎么解决?有任何想法吗?

1 个答案:

答案 0 :(得分:1)

由于您希望此代码按计划执行,因此您可能希望使用事件调度程序。

请参见此处:https://dev.mysql.com/doc/refman/5.7/en/event-scheduler.html

从这里你可以做以下事情:

CREATE EVENT e_store_ts
    ON SCHEDULE
      EVERY 10 SECOND
    DO
      INSERT INTO myschema.mytable VALUES (UNIX_TIMESTAMP());

这将创建一个每10秒执行一次的新事件,并在表mytable中插入一个unix时间戳。您可以使用ALTER更改事件,然后可以使用DROP删除它们。玩得开心!

因此,在您的情况下,创建一个每天执行的事件,执行您希望执行的表达式(DO子句)。