我需要有关 MySQL 中更新
的帮助。
目前,我需要在具有 keywords
相关的表 documents
中设置 created
和 updated
行通过外键
。
因此,我为关键字创建一个触发器来更新相关文档的更新
时间,并且我需要为Documents
表创建另一个。
问题是我是否可以使用更新
而不是触发器。
我尝试搜索on update
语句,看看它是否指的是正在更新的整个记录,可以使用多少列等,但我没有找到任何MySQL文档的主题。
任何帮助将不胜感激。
最佳答案
要实现此问题,您不需要使用触发器。这是因为 created
具有逻辑意义,必须一劳永逸地编写。因此,当插入行时,您将传递类似 NOW()
的内容。
现在,对于更新
,它具有最后更改时间戳的逻辑含义 - 然后通过定义时间戳字段,您可以指定 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 );
-就是这样。 IE。而在常见的情况下,对于更新事件,您必须使用触发器,当 MySQL 提供内置解决方案时就是这种情况。多说一句,当您希望使用它时,就是这种情况 - 也就是说,这就是它存在于 MySQL 中的原因。
对“何时”问题的常见答案是基于意见的,但逻辑“更新日期”的实现是一般目的。
关于mysql - 'on update'可以用在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19495124/