我需要MySQL中on update
的帮助。
目前,我需要在表格created
中设置updated
和documents
行keywords
与Foreign Key
相关联。
所以我为关键字创建了一个触发器来更新相关文档的updated
时间,我需要为Documents
表创建另一个。
问题是我是否可以使用on update
而不是触发器。
我已经尝试搜索on update
语句,看它是否引用了正在更新的整个记录,它可以使用多少列等,但我没有找到任何MySQL doc的主题
非常感谢任何帮助。
答案 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中的原因。
“何时”是基于意见的问题的常见答案,但逻辑“更新日期”的实施是一般目的。