【发布时间】:2019-02-27 18:51:58
【问题描述】:
我想为 Postgres 保留行级别的版本
表格
Column | Type | Modifiers
------------+--------------------------+----------------------------------
id | integer | not null
version | integer | not null default 0
Indexes:
"mytable_pk" PRIMARY KEY, btree (id, version)
我打算使用版本 0 作为当前版本。
一个例子:
最初:
INSERT INTO mytable(id, version) VALUES(1, 0);
然后
UPDATE mytable SET version = version + 1 where id = 1;
INSERT INTO mytable(id, version) VALUES(1, 0);
然后
UPDATE mytable SET version = version +1 where id = 1;
得到了错误
ERROR: duplicate key value violates unique constraint "mytable_pk"
DETAIL: Key (id, version)=(1, 1) already exists.
我在 Mysql 中使用这种模式没有问题。 任何提示如何在 Postgres 中实现上述目标?
【问题讨论】:
标签: sql postgresql