如何在postgreSql中使用更新

时间:2013-12-10 09:25:54

标签: postgresql

我正在尝试将以下SQL创建查询转换为postgreSQL并被卡住..请帮助..

 CREATE TABLE test (
      testname varchar(40) NOT NULL, 
      testStartTime timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    );

我只是postgreSql的初学者,无法弄清楚如何将“on update”事物转换为postgreSql。是否可以使用触发器?如果是,请解释..         提前谢谢。

2 个答案:

答案 0 :(得分:1)

MySQL的ON UPDATE子句是before触发器的简写,它将行的值保持为指定的值。所以,是的,您可以使用before触发器来实现相同的目标。

事实上,我模糊地回忆起在Postgres手册中为这个特定用例提到的内置触发器 - 但我似乎无法回忆起哪里。无论如何,它的要点是:

create function foo() returns trigger as $$
begin
  new.testStartTime := now();
  return new;
end;
$$ language plpgsql;

create trigger before update on bar
for each row execute procedure foo();

答案 1 :(得分:0)

这是Postgres中的an example of an update trigger