mysql - 'on update'可以用在哪里?

标签 mysql triggers onupdate

我需要有关 MySQL 中更新的帮助。

目前,我需要在具有 keywords 相关的表 documents 中设置 createdupdated 行通过外键

因此,我为关键字创建一个触发器来更新相关文档的更新时间,并且我需要为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/

相关文章:

javascript - 如何同时触发两个事件: onblur and onclick

android - 小部件仅在 2 次安装或重新启动后有效

android - 更新 apk 的同时更新数据库

php - PHP 和 MySQL 的 Multi-Tenancy

php - 如何将每个结果添加到 MySQL 中的表中

对于自定义事件,jQuery 触发器不会使用 bind() 或 on() 触发

php - 在触发器中使用定界符的 Mysql 错误

javascript - 选项卡重新加载时如何运行此脚本(chrome 扩展)?

mysql - 如何每天将联合表数据存储在历史表中 - Google BigQuery

mysql - SELECT 查询检查数据库之外的内容