1
我有一个插入前触发器:Mysql触发器和事件一起?
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天的间隔,这样在我的产品表中的一个标志(一个布尔值列)命名的产品。新设置为false是默认true.eg:
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;//
非常感谢任何答案..
那好吧..它是一个活动的限制。现在我该怎么做。我可以在我的控制器(我现在在php-codeigniter中)中做到这一点,但这也需要我创建一个事件驱动函数,我的意思是如果从创建日起过去15天,那么会触发一个自动函数将该标志设置为FALSE。任何数据库内的想法?谢谢你的回答很好.. – edam