PostgreSQL教程

PostgreSQL 删除触发器

在本节中,我们将了解 PostgreSQL DROP TRIGGER 命令的工作原理,并查看从PostgreSQL中的指定表中删除和删除触发器。

什么是PostgreSQL Drop Trigger命令?

在PostgreSQL中,我们可以使用 Drop Trigger 命令删除现有的触发。

PostgreSQL删除触发器命令的语法

下图用于从特定表中删除触发器:
DROP TRIGGER [if EXISTS] trigger_name 
ON table_name [ CASCADE | RESTRICT ];
在上面的语法中,我们使用了以下参数:
参数 说明
trigger_name 它用于定义我们需要删除的触发器名称,并在 DROP TRIGGER 关键字之后提及。
if EXISTS If EXISTS参数仅在触发器存在时才用于临时删除触发器。 并且如果我们尝试删除不存在触发器而未指定 IF EXISTS 命令,则会在结果中出现错误。 如果我们使用 IF EXISTS 删除不存在的触发器, PostgreSQL会发出通知作为替代。
Table_name 表名参数用于定义触发器所属的表名。 如果表链接到已定义的架构,则可以使用表的架构限定名称,例如 schema_name.table_name。
CASCADE 如果要放置自动依赖触发器的对象,则可以使用 CASCADE 选项。
RESTRICT 如果有任何对象取决于触发器,或者我们想拒绝或删除该触发器,则可以使用 RESTRICT 选项。 DROP TRIGGER 命令默认使用RESTRICT选项。
注意: 在SQL中,触发器名称不限于表,因此,我们可以使用以下命令:
DROP TRIGGER trigger_name;

PostgreSQL删除触发器命令的示例

让我们看一个简单的示例,以了解 PostgreSQL DROP Trigger 命令的工作。
为此,我们将使用 Employee 表,该表是在 PostgreSQL教程。

第1步: 创建新函数

首先,我们将创建一个函数,该函数检查员工的emp_name ,其中员工姓名的长度必须至少为 10 ,并且不能为空。
CREATE FUNCTION check_emp_name()
    RETURNS TRIGGER
AS $
BEGIN
if length(NEW.emp_name) < 10 OR NEW.emp_name IS null THEN
  RAISE EXCEPTION 'The emp_name cannot be less than 10 characters';
    END IF;
    if NEW.emp_nAME IS null THEN
        RAISE EXCEPTION 'emp_name cannot be null';
    END IF;
    return NEW;
END;
$
LANGUAGE plpgsql;
输出
在执行上述命令时,我们将收到以下消息: check_emp_name()函数已成功创建到组织数据库。
PostgreSQL DROP Trigger

步骤2: 创建新触发器

创建 check_emp_name()函数后,我们将在 员工上创建新触发器 表以检查雇员的emp_name。
只要我们在 中更新或插入一行,就会执行相同的触发器Employee 表(从 Organization 数据库中获取):
CREATE TRIGGER emp_name_check 
BEFORE INSERT OR UPDATE
ON employee
for EACH ROW 
EXECUTE PROCEDURE check_emp_name();
输出
执行上述命令后,我们将获得以下消息窗口,该窗口显示 emp_name_check 触发器已成功插入 Employee 表。
PostgreSQL DROP触发器
而且,我们还可以验证上面创建的函数(check_emp_name())并在对象树o f Organization <中触发(emp_name_check )).. strong> 数据库。
PostgreSQL DROP Trigger

Step3: 删除触发器

成功生成函数和触发器后,我们将在 DROP TRIGGER 的帮助下删除 emp_name_check 触发器。 >命令,如下所示:
DROP TRIGGER emp_name_check
ON employee;
输出
执行上述命令后,我们将获得以下输出,该输出显示特定触发器已成功被丢弃 Employee 表。
PostgreSQL DROP Trigger

概述

在 PostgreSQL删除触发器部分中,我们学习了以下主题:
我们了解 PostgreSQL删除触发器命令的用法,该命令用于删除特定表的触发器。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4