要在 PostgreSQL 中创建新触发器,请执行以下步骤:
- 首先,使用 CREATE FUNCTION 语句创建触发器函数。
- 二、通过使用将触发器函数绑定到一个表创建触发器陈述。
触发函数类似于普通函数。但是,触发器函数不接受任何参数,并且具有触发器类型的返回值。
下面说明了创建触发器函数的语法:
用法: CREATE FUNCTION trigger_function() RETURNS trigger AS
触发器函数通过一个称为 触发数据,其中包含一组局部变量。 一旦定义了触发器函数,就可以将其绑定到一个或多个触发器事件,例如INSERT,UPDATE和DELETE。
例:
我们来看一个创建新触发器的例子。在这个例子中,我们将创建一个新表公司名称如下:
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;
输出:
相关用法
- PostgreSQL DROP TRIGGER用法及代码示例
- PostgreSQL ALTER TRIGGER用法及代码示例
- PostgreSQL CREATE DOMAIN用法及代码示例
- PostgreSQL CREATE TABLE用法及代码示例
- PostgreSQL CREATE SEQUENCE用法及代码示例
- PostgreSQL CREATE SCHEMA用法及代码示例
- PostgreSQL CREATE PROCEDURE用法及代码示例
- PostgreSQL CREATE INDEX用法及代码示例
- PostgreSQL CREATE ROLE用法及代码示例
- PostgreSQL CREATE TABLESPACE用法及代码示例
注:本文由纯净天空筛选整理自RajuKumar19大神的英文原创作品 PostgreSQL – CREATE TRIGGER。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。