哪里可以使用“更新”?

时间:2013-10-21 12:54:35

标签: mysql triggers onupdate

我需要MySQL中on update的帮助。

目前,我需要在表格created中设置updateddocumentskeywordsForeign Key相关联。

所以我为关键字创建了一个触发器来更新相关文档的updated时间,我需要为Documents表创建另一个。

问题是我是否可以使用on update而不是触发器。

我已经尝试搜索on update语句,看它是否引用了正在更新的整个记录​​,它可以使用多少列等,但我没有找到任何MySQL doc的主题

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

要实现此问题,您不需要使用触发器。这是因为created具有一劳永逸的逻辑意义。因此,当插入行时,您会传递NOW()之类的内容。

现在,对于updated,其具有最后更改时间戳的逻辑含义 - 然后使用定义时间戳字段,您可以指定ON UPDATE CURRENT_TIMESTAMP子句:

CREATE TABLE t1 (   
  s TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,   
  dt DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );

- 就是这样。即虽然在更新事件的常见情况下,您将不得不使用触发器,这是MySQL提供内置解决方案的情况。更确切地说,当你期望使用它时,就是的情况 - 也就是说,这就是它存在于MySQL中的原因。

“何时”是基于意见的问题的常见答案,但逻辑“更新日期”的实施是一般目的。