我在MySQL中创建以下触发器时遇到了困难:
CREATE TRIGGER TRG_COMPLETE_REMINDER
AFTER UPDATE ON reminders
FOR EACH ROW
BEGIN
DECLARE
new_date DATE;
IF (NEW.complete = 1 AND recurrence <> 'NONE') THEN
CASE recurrence
WHEN '1 WEEK' THEN
SELECT INTO new_date NEW.date + INTERVAL 7 DAY;
WHEN '1 MONTH' THEN
SELECT INTO new_date NEW.date + INTERVAL 1 MONTH;
WHEN '3 MONTH' THEN
SELECT INTO new_date NEW.date + INTERVAL 3 MONTH;
END CASE;
INSERT INTO reminders (description, date, userID, complete, recurrence)
VALUES (NEW.description, new_date, NEW.userID, 0, NEW.recurrence);
END IF;
END;
在我尝试声明new_date
时,问题似乎正在发生。 MySQL返回以下错误消息:
#1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第8行的“
INTO new_date NEW.date + INTERVAL 7 DAY
”附近使用正确的语法
我希望此触发器在complete
属性更改为1时创建新的提醒记录。新记录的日期应大于原始记录,具体取决于recurrence
中存储的值
答案 0 :(得分:1)
两次更正解决了这个问题:
SELECT
声明中的条款顺序(即
在INTO new_date
)之后移动SELECT new_date + INTERVAL 7 DAY
DELIMITER //
答案 1 :(得分:1)
您可以在INSERT语句中使用CASE expression权限,而不是使用变量:
self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Item", style: .Plain, target: self, action: nil)
祝你好运。