小编jul*_*iam的帖子

如果行已更新,则更新列值的函数

我正在尝试创建一个函数,如果我更新数据库行的任何列,它将增加我的版本列值 (int)。例如,如果我有一个包含列(id、标题、版本)并且默认版本为 1 的 foo 表,我希望我的 vesrion 在我更新单个 foo 行的标题后增加。我编写了以下函数,但是一旦我测试它就会抛出错误:

create or replace function update_foo_version()
returns trigger as $body$
  begin
    update foo
    set version = version::int + 1
    where old.id=new.id;
    return new;
  end
$body$
language plpgsql;
Run Code Online (Sandbox Code Playgroud)

我对这个功能的触发器:

create trigger update_version 
after update on foo
for each row execute procedure update_foo_version();
Run Code Online (Sandbox Code Playgroud)

postgresql trigger

4
推荐指数
1
解决办法
3740
查看次数

标签 统计

postgresql ×1

trigger ×1