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()函数已成功创建到组织数据库。
步骤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 表。
而且,我们还可以验证上面创建的函数(check_emp_name())并在对象树o f Organization
<中触发(emp_name_check )).. strong>
数据库。
中触发(emp_name_check>
Step3: 删除触发器
成功生成函数和触发器后,我们将在 DROP TRIGGER 的帮助下删除 emp_name_check 触发器。 >命令,如下所示:
DROP TRIGGER emp_name_check
ON employee;
输出
执行上述命令后,我们将获得以下输出,该输出显示特定触发器已成功被丢弃 Employee 表。
概述
在 PostgreSQL删除触发器部分中,我们学习了以下主题:
我们了解 PostgreSQL删除触发器命令的用法,该命令用于删除特定表的触发器。