【发布时间】:2014-08-09 17:07:46
【问题描述】:
这是我第一次尝试设置触发器,但实际上,我已经尽最大努力为此工作了 1 小时,但我的尝试都失败了。
代码是这样的,方法很简单,我声明了一个论坛帖子表,我想用触发器设置过期日期。
CREATE TABLE post(
pid INT NOT NULL AUTO_INCREMENT,
owner_id INT,
title VARCHAR(140),
text VARCHAR(255),
posted TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
expiration DATETIME,
PRIMARY KEY( pid ),
FOREIGN KEY( owner_id ) REFERENCES user( userid )
);
delimiter $$
CREATE TRIGGER post
BEFORE INSERT post
FOR EACH ROW BEGIN
SET new.'expiration' = DATE_ADD(NOW(), INTERVAL 60 DAY);
END;
$$
DELIMITER;
你能解释一下触发器声明中的错误在哪里吗? 提前谢谢你。
【问题讨论】:
-
你遇到了什么错误?
-
这是我得到的错误:#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法,以便在第 2 行的“post FOR EACH ROW BEGIN SET new.'expiration' = DATE_ADD(NOW(), IN' 附近使用”
-
你只漏掉了一个空格:最后一行必须是
DELIMITER ; -
@VMai:我试图添加一个空格,但我得到了同样的错误..
标签: mysql sql triggers intervals