我有一个插入前触发器:
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中设置一个标志(布尔列)为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;//
非常感谢您提供任何答案。
尽管文档中说:
...
您可以将事件创建为存储例程的一部分,但是另一个事件不能创建一个事件。
我认为这已经过时了,因为我们阅读了以下内容:
...
事件计划程序限制
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句