Knex.js 在更新其他列时更改列中的日期
Knex.js changing Date in a column when other column is updated
我正在使用 knex.js 来处理 SQL 查询。我有一个 table,其中包含选择信息,例如
{
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
...
}
使用 objection.js 构建在 knex 之上并具有在插入/更新之前修改数据的挂钩,这更容易实现。
使用 knex 可能最简单的支持方法是编写单独的辅助函数来更新 table,它总是会根据您的情况设置日期。
另一种方法是将事件处理程序写入 knex.on('start', ...) 事件,查看查询生成器内部结构,如果您从那里发现 message_opt_in已更新,您还可以为 message_opt_in_date 列添加更新。
无论如何,我不会建议第三种方式,因为它可能会在 knex 更新时中断。
我正在使用 knex.js 来处理 SQL 查询。我有一个 table,其中包含选择信息,例如
{
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
...
}
使用 objection.js 构建在 knex 之上并具有在插入/更新之前修改数据的挂钩,这更容易实现。
使用 knex 可能最简单的支持方法是编写单独的辅助函数来更新 table,它总是会根据您的情况设置日期。
另一种方法是将事件处理程序写入 knex.on('start', ...) 事件,查看查询生成器内部结构,如果您从那里发现 message_opt_in已更新,您还可以为 message_opt_in_date 列添加更新。
无论如何,我不会建议第三种方式,因为它可能会在 knex 更新时中断。