Code前端首页关于Code前端联系我们

PostgreSQL触发器的创建和使用及优点

terry 2年前 (2023-09-26) 阅读数 41 #数据库
PostgreSQL 触发器的创建、使用和优点 、❝ 自动运行 、DELETETRUNCATE 语句)。触发器用于验证输入数据、执行业务规则、维护审计跟踪等。插入、更新阅读)。或者在操作完成后(检查约束并完成INSERTUPDATE❙之后)。或 不是操作(对于任何修改,在 INSERTUPDATEDELETE 的情况下,在视图中调用) 标记为 触发 为了所有行。另一方面,标记为 FOR EACH STATEMENT 的触发器对于任何给定操作仅执行一次,无论它更改了多少行。
  • 您可以为同一事件定义多个相同类型的触发器,但条件按名称字母顺序触发。
  • 当触发器所连接的表被删除时,触发器会自动删除。
  • PostgreSQL 创建触发器

    CREATE TRIGGER 语句用于在 PostgreSQL 表中创建新触发器。当表上发生特定事件(即INSERTUPDATEDELETE)时,它会被激活。

    语法

    CREATE  TRIGGER trigger_name [BEFORE|AFTER|INSTEAD OF] event_name  
    ON table_name  
    [  
     -- Trigger logic goes here....  
    ];
    
    SQL

    这里,Event_name 可以 对指定表 进行 、DELETE TRUNCATE 数据库操作表名。您可以选择在表名称后指定 FOR EACH ROW

    让我们看看如何在操作INSERT中创建触发器的语法。

    CREATE  TRIGGER trigger_name AFTER INSERT ON column_name  
    ON table_name  
    [  
     -- Trigger logic goes here....  
    ];
    
    SQL

    触发器示例

    以下示例显示 PostgreSQL 在 INSERT 语句之后创建触发器。在以下示例中,我们检查(审核)插入到 COMPANY 表中的每条记录。

    使用以下查询创建名为 COMPANY 的表:

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

    为了保存审核/审查,我们创建一个新表❀ITD-name❀ ,日志消息为进入当表 COMPANY 中有新记录的条目时。

    使用以下查询创建另一个表 Audit

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

    在 COM 上创建触发器之前NY❀ 首先创建一个名为 audit 的触发器logfunc() 函数/过程。

    归档以下查询语句来创建函数/过程:

    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;
    
    SQl

    ta 执行结果如下 -

    PostgreSQL触发器的创建和使用及优点

    Nonce 在公司上触发 查询语句:D '执行结果

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

    如下 -
    PostgreSQL触发器的创建和使用及优点

    向❀❀执行表添加一些数据记录。离子。

    INSERT INTO COMPANY VALUES(1, '小米科技', 8, '北京市朝阳区', 9999);
    INSERT INTO COMPANY VALUES(2, '京东中科', 6, '广州市天河区', 8999);
    
    SQL

    执行完上面的insert语句后,我们看看AUDIT表是否自动插入了两条审计记录。

    PostgreSQL触发器的创建和使用及优点

    可以肯定的是,输入数据后触发器将触发,PostgreSQL将自动在AUDIT表中创建/插入两条记录。这些记录是触发器的结果,因为我们在 COMPANY

    表上的 AFTER INSERT 上创建了这些记录。

    PostgreSQL 触发器的使用

    PostgreSQL 触发器可用于以下目的:

    • 验证输入数据。
    • 介绍业务规则。
    • 为不同文件中新插入的行生成唯一值。
    • 写入附加文件以进行审计跟踪。
    • 索取其他文件以供交叉参考。
    • 访问系统功能。
    • 将数据复制到多个文件以保证数据一致性。

    使用触发器的好处

    • 它提高了应用程序开发的速度。由于数据库存储了触发器,因此您不需要在每个数据库应用程序中都触发。
    • 全球执行业务规则。定义一次触发器并在每个使用数据库的应用程序中使用它们。
    • 更易于维护当业务策略发生变化时,只需更改相应的触发器,而不需要更改每个应用程序。
    • 提高客户端/服务器环境的性能。所有规则在返回结果之前都在服务器上运行。

    版权声明

    本文仅代表作者观点,不代表Code前端网立场。
    本文系作者Code前端网发表,如需转载,请注明页面地址。

    发表评论:

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

    热门