如何在表中创建一个具有整数值的列(当我插入一行时从0开始),每次更新一行时都会增加1?
我需要它将它用作乐观锁定。
感谢。
答案 0 :(得分:3)
您需要使用触发器来实现此目的。 此
没有自动或内置解决方案create table some_table
(
id serial primary key,
some_data text,
version integer not null default 0
);
create or replace function increment_version()
returns trigger
as
$body$
begin
new.version := new.version + 1;
return new;
end;
$body$
language plpgsql;
create trigger version_trigger
before update on some_table
for each row execute procedure increment_version();
请注意,触发器功能可用于包含名为version
的列的任何表(即数字)。