评论

收藏

[NoSQL] PostgreSQL触发器

数据库 数据库 发布于:2021-07-31 12:28 | 阅读数:453 | 评论:0

员工表
CREATE TABLE COMPANY(  
   ID INT PRIMARY KEY   NOT NULL,  
   NAME       TEXT  NOT NULL,  
   AGE      INT   NOT NULL,  
   ADDRESS    CHAR(50),  
   SALARY     REAL  
);
审计日志消息
CREATE TABLE AUDIT(  
  EMP_ID INT NOT NULL,  
  ENTRY_DATE TEXT NOT NULL  
);
创建触发器,但插入员工表之后自动插入一条审计消息
CREATE TRIGGER example_trigger AFTER INSERT ON COMPANY  
FOR EACH ROW EXECUTE PROCEDURE auditlogfunc();
其中存储过程auditlogfunc如下:
CREATE OR REPLACE FUNCTION auditlogfunc() RETURNS TRIGGER AS $example_table$  
  BEGIN  
    INSERT INTO AUDIT(EMP_ID, ENTRY_DATE) VALUES (new.ID, current_timestamp);  
    RETURN NEW;   
  END;  
$example_table$ LANGUAGE plpgsql;
使用new.ID表示插入新记录之后的员工ID
使用RETURN NEW返回该触发器类型。


关注下面的标签,发现更多相似文章