更新其他列时,Knex.js更改列中的日期

时间:2018-02-20 14:36:42

标签: mysql node.js knex.js

我使用knex.js来处理SQL查询。我有一个包含选择信息的表格,例如

{
 market_opt_in: 1
 market_opt_in_date: 2018-02-15 15:51:45
 message_opt_in: 0
 message_opt_in_date: 2018-02-15 15:51:45
 ...
}

等等。

更改个别opt_in时是否可以更改日期?所以就像

{
 market_opt_in: 1
 market_opt_in_date: 2018-02-15 15:51:45
 message_opt_in: 1 // when this row updated
 message_opt_in_date: 2018-02-20 11:12:13 // date updates as well
 ...
}

1 个答案:

答案 0 :(得分:0)

使用基于knex构建的objection.js更容易实现,并且在插入/更新之前有用于修改数据的钩子。

使用knex可能最容易支持的方法是编写单独的帮助函数来更新该表,这也总是在你的情况下设置日期。

另一种方法是将事件处理程序写入knex.on(' start',...)事件,查看查询构建器内部,如果从那里发现message_opt_in已更新,则可以添加还会更新message_opt_in_date列。

无论如何,我不会建议第三种方式,因为当knex更新时它可能会中断。