MariaDB -将历史数据插入系统版本化(时态)表

blmhpbnm  于 2023-01-13  发布在  其他
关注(0)|答案(1)|浏览(166)

我在MariaDB中有一些表,我一直在使用一个单独的“changelog”表来跟踪更改,该表在每次记录更新时都会更新。然而,我最近了解了MariaDB中的时态数据表,我想改用这种方法,因为它是一种更优雅的跟踪更改的方法。然而,我想知道,如果有办法将我的“changelog”表转移到新的系统版本化表。
所以我希望我可以用表中指定的值插入新行,也可以指定row_end和row_start列,并且不触发表创建另一个历史行...这可能吗?我尝试只做一个“insert into(id,row_start,row_end,etc)values(x,y,z)”,但这会导致未知列“row_start”错误。

5w9g7ksd

5w9g7ksd1#

老问题,但从10.11 MariaDB开始,允许使用命令行选项或设置直接插入历史数据。
https://mariadb.com/kb/en/system-versioned-tables/#system_versioning_insert_history

system_versioning_insert_history
Description: Allows direct inserts into ROW_START and ROW_END columns if secure_timestamp allows changing timestamp.
Commandline: --system-versioning-insert-history[={0|1}]
Scope: Global, Session
Dynamic: Yes
Type: Boolean
Default Value: OFF
Introduced: MariaDB 10.11.0

相关问题