当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PostgreSQL CREATE TRIGGER用法及代码示例


要在 PostgreSQL 中创建新触发器,请执行以下步骤:

  • 首先,使用 CREATE FUNCTION 语句创建触发器函数。
  • 二、通过使用将触发器函数绑定到一个表创建触发器陈述。

触发函数类似于普通函数。但是,触发器函数不接受任何参数,并且具有触发器类型的返回值。

下面说明了创建触发器函数的语法:

用法:
CREATE FUNCTION trigger_function() 
   RETURNS trigger AS

触发器函数通过一个称为 触发数据,其中包含一组局部变量。 一旦定义了触发器函数,就可以将其绑定到一个或多个触发器事件,例如INSERTUPDATEDELETE

例:



我们来看一个创建新触发器的例子。在这个例子中,我们将创建一个新表公司名称如下:

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

当员工姓名更改时,我们将更改记录在名为 AUDIT 的单独表中

CREATE TABLE AUDIT(
   EMP_ID INT NOT NULL,
   ENTRY_DATE TEXT NOT NULL
);

首先,定义一个名为 auditlog() 的新函数:

CREATE OR REPLACE FUNCTION auditlog() 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;

该函数将旧的姓氏插入到 AUDIT 表中,包括员工 ID、姓氏和更改时间(如果员工的姓氏发生变化)。其次,将触发器函数绑定到employees 表。触发器名称是名称更改。在 name 列的值更新之前,会自动调用触发器函数来记录更改。

 CREATE TRIGGER example_trigger AFTER INSERT ON COMPANY
FOR EACH ROW EXECUTE PROCEDURE auditlog();

第三,插入一些样本数据进行测试。我们插入两行雇员表。

INSERT INTO COMPANY (ID, NAME, AGE, ADDRESS, SALARY)
VALUES (1, 'Raju', 25, 'New-Delhi', 33000.00 );

为了检查雇员表使用以下查询:

SELECT * FROM COMPANY;

输出:

相关用法


注:本文由纯净天空筛选整理自RajuKumar19大神的英文原创作品 PostgreSQL – CREATE TRIGGER。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。