PostgreSQL Drop Trigger删除触发器
在本节中,我们将了解PostgreSQL DROP TRIGGER命令的工作原理,并查看从 PostgreSQL 中的指定表中删除和删除触发器的示例。
什么是 PostgreSQL Drop Trigger 命令?
在 PostgreSQL 中,我们可以使用Drop Trigger命令来移除已有的触发器。
PostgreSQL Drop 触发器命令的语法
下图用于从特定表中删除触发器:
DROP TRIGGER [IF EXISTS] trigger_name
ON table_name [ CASCADE | RESTRICT ];
在上面的语法中,我们使用了以下参数:
参数 | 描述 |
---|---|
Trigger_name |
|
If EXISTS |
|
Table_name |
|
CASCADE |
|
RESTRICT |
|
DROP TRIGGER trigger_name;
PostgreSQL Drop Trigger 命令示例
让我们看一个简单的例子来理解PostgreSQL DROP Trigger命令的工作原理。
为此,我们将使用我们在PostgreSQL 教程的前面部分中创建的Employee表。
第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()函数已成功创建到Organization数据库中。
第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())和触发器(emp_name_check )。
第 3 步:删除触发器
成功生成函数和触发器后,我们将借助 DROP TRIGGER 命令删除emp_name_check触发器,如下所示:
DROP TRIGGER emp_name_check
ON employee;
执行上述命令后,我们将得到以下输出,显示特定触发器已从Employee表中成功删除。
热门文章
优秀文章