Mysql Trigger和Event在一起?

标签 mysql triggers cron rdbms

我有一个前插入触发器:

    DELIMITER //
    DROP TRIGGER IF EXISTS product_before_insert //
    CREATE TRIGGER product_before_insert 
    BEFORE INSERT ON product
    FOR EACH ROW
     BEGIN
      IF NEW.created_on='0000-00-00 00:00:00' THEN
       SET NEW.created_on = NOW();
       SET NEW.modified_on = NOW();
       SET NEW.expires_on = ADDDATE(NOW(), INTERVAL 15 DAY);    
     END IF;
    END;//

好吧,现在我想将 New.created_on 作为 TIMESTAMP 并添加 15 天的间隔,以便我的产品表中名为 product.new 的一个标志( bool 列)设置为 false,默认情况下为 true。例如:

       new boolean NOT NULL DEFAULT 1  #table name:product

我可以这样吗:

    DELIMITER //
    DROP TRIGGER IF EXISTS product_before_insert //
    CREATE TRIGGER product_before_insert 
    BEFORE INSERT ON product
    FOR EACH ROW
     BEGIN
      IF NEW.created_on='0000-00-00 00:00:00' THEN
       SET NEW.created_on = NOW();
       SET NEW.modified_on = NOW();
       SET NEW.expires_on = ADDDATE(NOW(), INTERVAL 15 DAY);

       CREATE EVENT newflagsetter
       ON SCHEDULE AT NEW.created_on + INTERVAL 15 DAY
       DO
         UPDATE product SET new=0;

     END IF;
    END;//

非常感谢任何答案..

最佳答案

虽然文档说:

13.1.11. CREATE EVENT Syntax

...

You can create an event as part of a stored routine, but an event cannot be created by another event.

我认为它已经过时了,因为我们阅读了以下内容:

E.1. Restrictions on Stored Programs

...

Event Scheduler Restrictions

  • ...
  • An event may not be created, altered, or dropped by a stored routine, trigger, or another event. An event also may not create, alter, or drop stored routines or triggers. (Bug #16409, Bug #18896).
  • ...

关于Mysql Trigger和Event在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20741689/

相关文章:

MySQL 过程无法识别参数

php - 如何选择用户好友帖子和用户帖子

javascript - Sails.js 对关联值的查询

WPF 触发 VS Converter

amazon-web-services - 需要仅运行一次的 Cloudwatch 规则(预定的规则)

Java Quartz CronExpression 验证错误的 cron 表达式

php - Sphinx 返回错误的文档 ID

sql-server - 在 SQL Server 中为 Webhook 添加表触发器

mysql - 如何防止删除 MySql 中的默认行?

php - 我可以在 Linux Cron Job/Crontab 上运行 Laravel Route 吗?