【发布时间】:2013-12-23 20:44:23
【问题描述】:
我有一个插入前触发器:
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;//
非常感谢您的任何回答..
【问题讨论】:
标签: mysql triggers crontab rdbms