触发语法错误1064,使用IF / THEN和日期

时间:2013-08-22 21:40:36

标签: mysql mysql-workbench

作为一个完整的新手,我想我可以通过寻求帮助来拯救自己很多头痛......

当我尝试运行此操作时,我收到错误1064:您的SQL语法出错...

  

在删除或插入OR之前创建TRIGGER payroll_lock   更新每个行的timesheet_entry如果是entry_date< “2013年7月25日”   然后raise_application_error(-20001,'无法修改旧记录。');

如果记录在给定的固定日期之前,我还会考虑停止插入/更新/删除的其他选项。

感谢您解决此问题的任何帮助!我很感激,并且在这个特定的领域我不太了解。

1 个答案:

答案 0 :(得分:0)

您应该在CALL功能之前使用raise_application_error关键字。 另一个提示是,您应该使用NEWOLD关键字进行更新触发。

我不确定,但我认为你不能用OR在同一个命令中创建多个触发器(这是我第一次看到它)。

DELIMITER //
CREATE TRIGGER payroll_lock BEFORE UPDATE  ON wp_links
   FOR EACH ROW
      BEGIN
      IF NEW.entry_date < '2013-07-25' THEN
         CALL raise_application_error(-20001, 'Cannot modify old records.');
      END IF;
      END//