在mysql中触发工作问题

时间:2014-02-13 07:33:55

标签: mysql triggers

我的mysql数据库触发器有问题。我的数据库中有一个表,其中包含两个字段“创建日期”和“上次更新日期”。我使用'TimeStamp'数据类型为'创建日期'和'日期'数据类型为'上次更新日期'。

我制作了一个触发器,用于更新“上次更新日期”字段中的日期。 我的触发器代码在这里

    CREATE TRIGGER `trigger_name` AFTER Insert ON `table1`
      FOR EACH ROW
    BEGIN
         update table1 set last_updated_date = NOW()
          where id = (select top id from table1)
END;

我不知道我哪里错了。请建议我解决这个问题。

请大家询问是否有任何问题需要了解。

感谢

2 个答案:

答案 0 :(得分:2)

你在子查询中有一个无效的sql语法。使用 LIMIT 代替 TOP

TOP 子句适用于MSSQL服务器。

执行以下查询,它将起作用。

DELIMITER $$
CREATE TRIGGER `trigger_name` BEFORE INSERT ON `table1`
FOR EACH ROW
BEGIN
  SET NEW.last_updated_date = NOW(); 
END;$$
DELIMITER ;

答案 1 :(得分:0)

CREATE TRIGGER `trigger_name`
AFTER INSERT ON `table1`
FOR EACH ROW
BEGIN

update table1 set last_updated_date = NOW()
      where id = (select top id from table1)


END;//