2012-05-24 63 views

回答

1

这是一个测试表

CREATE TABLE test20120524 
(
    id integer NOT NULL, 
    bool boolean, 
    comment_by_trigger text, 
    CONSTRAINT pk_test20120524 PRIMARY KEY (id) 
) 
WITH (
    OIDS=TRUE 
); 

这是一个示例触发功能。 OLDNEW是预声明的变量,表示更新的行。

create or replace function test1() returns opaque as 
' 
declare 
    -- some variables 
begin 
    if OLD.bool = false and NEW.bool = true then 
     NEW.comment_by_trigger = ''affected by trigger''; 
    end if; 
    return NEW; 
end; 
' language 'plpgsql'; 

然后,创建触发器。

CREATE TRIGGER test2 
    BEFORE UPDATE 
    ON test20120524 
    FOR EACH ROW 
    EXECUTE PROCEDURE test1(); 

存储过程并不困难。你可以在PostgreSQL的官方文件很容易地学会它:http://www.postgresql.org/docs/9.1/interactive/index.html

看到

  • 36 ..触发器
  • 39 .. PL/pgSQL的 - SQL过程语言(尤其是39.9触发程序)
+0

非常感谢你,这是晚上需要req的那些东西之一,你希望在第二天早晨完成,而且没有太多时间来挖掘。非常感谢你 – user373201

相关问题