PostgreSQL DROP 触发器

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

什么是 PostgreSQL 删除触发器命令?

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

PostgreSQL 删除触发器命令语法

下图用于从特定表中删除触发器:

删除触发器 [如果存在] 触发器名称
ON 表名 [CASCADE |限制];

在上面的语法中,我们使用了以下参数:

参数 描述
触发器名称
  • 用于定义我们需要删除的触发器名称,在DROP TRIGGER关键字后面提到。
如果存在
  • If EXISTS 参数用于仅在触发器存在时临时删除触发器。
  • 如果我们尝试删除不存在的触发器而不指定IF EXISTS命令,我们将在结果中收到错误。
  • 如果我们使用 IF EXISTS 删除不存在的触发器,
  • PostgreSQL 会发出通知作为替代方案。

表名称
  • 表名参数用于定义触发器所属的表名。
  • 如果表链接到已定义的架构,我们可以使用表的架构限定名称,例如schema_name.table_name。
级联
  • 如果我们想要删除自动依赖于触发器的对象,我们可以使用CASCADE选项。
限制
  • 如果有任何对象依赖于触发器或者我们想要拒绝或删除该触发器,我们可以使用RESTRICT选项。
  • DROP TRIGGER命令默认使用 RESTRICT 选项。

注意:在 SQL 中,触发器名称不仅限于表,因此,我们可以使用以下命令:

DROP TRIGGER 触发器名称;

PostgreSQL 删除触发器命令示例

让我们看一个简单的示例来了解PostgreSQL DROP 触发器命令的工作原理。

为此,我们使用了 Employee 表,该表是在 PostgreSQL 教程的上一部分中创建的。

第 1 步:创建新函数

首先,我们将创建一个函数来检查 员工的 emp_name,其中 员工 name 的长度必须是至少 10, 并且不能为空。

创建函数 check_emp_name()
    退货触发
作为$$
开始
IF 长度(NEW.emp_name) < 10 或 NEW.emp_name 为 NULL THEN
  引发异常 'emp_name 不能少于 10 个字符';
    万一;
    如果 NEW.emp_nAME 为 NULL 那么
        引发异常“emp_name 不能为 NULL”;
    万一;
    返回新的;
结尾;
$$
语言 plpgsql;

输出

执行上述命令后,我们将收到以下消息: check_emp_name()函数已成功创建到Organization数据库中。

第 2 步:创建新触发器

创建 check_emp_name() 函数,我们将在 employee 上创建一个新触发器 来检查 员工的 emp_name。

每次我们在 Employee 表(取自 Organization 数据库)中更新或插入一行 时,都会执行相同的触发器:

创建触发器 emp_name_check
插入或更新之前
安恩员工
对于每一行
执行过程 check_emp_name();

输出

执行上述命令后,我们将看到以下消息窗口,显示emp_name_check触发器已成功插入到Employee表中。

中,我们还可以验证在组织
数据库的对象树中创建的函数 (Check_emp_name ()) ) 和触发器 (EMP_NAME_CHECK)。

第 3 步:扣下扳机

成功生成函数和触发器后,我们将借助DROP TRIGGER命令删除emp_name_check触发器,如下所示:

删除触发器 emp_name_check
ON 员工;

输出

执行上述命令后,我们将得到以下输出,表明特定触发器已成功从Employee中删除。

概述

PostgreSQL 删除触发器部分中,我们了解了以下主题:

骇客技术资讯网 | ©All Rights Reserved.