2012-10-29 6 views
2
CREATE TABLE users 
(
id integer NOT NULL DEFAULT nextval('userseq'::regclass) 
........ 
) 

CREATE TABLE History 
(
userid integer, 
createdat timestamp with time zone 
) 

CREATE OR REPLACE FUNCTION recordcreatetime() 
     RETURNS trigger AS 
     $BODY$ 
     BEGIN 
       NEW.createdAt = NOW(); 
       RETURN NEW; 
     END; 
     $BODY$ 
      LANGUAGE plpgsql VOLATILE 
      COST 100; 

사용자 및 기록에는 일대일 관계가 있습니다. 새 사용자를 만들기 전에 History 테이블에 새 레코드를 어떻게 삽입 할 수 있습니까?Postgresql : 트리거를 사용하여 레코드 삽입

답변

3
CREATE OR REPLACE FUNCTION recordcreatetime() 
    RETURNS trigger 
language plpgsql 
AS $$ 
DECLARE 
BEGIN 
INSERT INTO History values(new.id,NOW()); 
RETURN NEW; 
END; 
$$; 

및 트리거 명령문을 작성

CREATE TRIGGER user_hist 
BEFORE INSERT ON users 
FOR EACH ROW EXECUTE function recordcreatetime() ; 
관련 문제