我们有一个场景,我们想要频繁更改(单个)测量值的标签。我们的目标是创建一个存储预后值的数据库。但它绝不应该丢失数据并跟踪对已写入数据的更改,例如更改或覆盖。
我们目前的计划是有一个额外的字段“write_ts”,它指示测量值在哪个时间点被插入或更改,以及一个标签“版本”,每次更改都会更新。此外,版本“0”应始终包含最新值。
name: temperature
-----------------
time write_ts (val) current_mA (val) version (tag) machine (tag)
2015-10-21T19:28:08Z 1445506564 25 0 injection_molding_1
所以让我们假设我有这个示例值的更新预测值。
所以,我这样做:
SELECT curr_measurement
INSERT curr_measurement with new tag (version = 1)
DROP curr_mesurement
//then
INSERT new_measurement with version = 0
现在我的问题:
如果我出于任何原因在 SELECT、INSERT、DROP 之间失去了连接:
我会得到双记录。
(或者如果我执行 SELECT、DROP、INSERT:我会丢失数据)
有什么方法可以防止这种情况吗?