PostgreSQL ALTER TRIGGER17 Mar 2025 | 5 分钟阅读 在本节中,我们将了解 PostgreSQL ALTER TRIGGER 命令的工作原理,并查看在 PostgreSQL 中从指定表中更改触发器或重命名触发器的示例。 什么是 PostgreSQL ALTER TRIGGER 命令?在 PostgreSQL Trigger 中,下一个命令是 Alter Trigger 命令,它用于重命名现有的触发器。 PostgreSQL Alter trigger 命令的语法以下说明用于更改表中的触发器 在上面的语法中,我们使用了以下参数
PostgreSQL ALTER TRIGGER 命令示例让我们看一个示例来了解 PostgreSQL Alter Trigger 命令的工作原理。 我们正在借助 CREATE 命令创建一个新表,即 Student,并使用 INSERT 命令插入一些值。 步骤 1:创建新表要在 Organization 数据库中创建一个 Student,我们使用 CREATE 命令。 但是,在创建 Student 表之前,我们将使用 DROP TABLE 命令来检查 Organization 数据库中是否已经存在类似的表。 输出 执行上述命令后,我们将收到以下窗口消息:Student 表不存在。 ![]() Student 表包含各种列,例如 Student_id、Student_name、Scholarship 列,我们使用 Student_id 作为 GENERATED ALWAYS AS IDENTITY 约束。 输出 执行上述命令后,我们将收到以下消息:Student 表已成功创建到 Organization 数据库中。 ![]() Step2:创建一个新函数成功创建 Student 表后,我们将创建一个新函数,如果新奖学金高于旧奖学金的 100%,则会引发异常 输出 执行上述命令后,我们将收到以下消息,该消息显示 check_scholarship() 函数已成功创建到 Organization 数据库中。 ![]() Step3:创建一个新触发器创建 check_scholarship() 函数后,我们将在更新 触发器之前,在 Student 表上创建一个新触发器,该触发器在更新奖学金之前执行 check_scholarship() 函数。 输出 在实现上述 before_update_scholarship 命令后,我们将获得以下消息窗口,该窗口显示已成功为 Student 表插入了指定的触发器。 ![]() Step4:插入一个新值一旦 函数和触发器 已成功生成,我们将借助 INSERT 命令在 Student 表中 插入 一个新行 输出 执行上述命令后,我们将获得以下消息窗口,该窗口显示已成功将特定值插入到 Student 表中。 ![]() Step5:更新值插入新行后,我们将使用以下 UPDATE 命令更新 Student_id 1 的奖学金 输出 在执行上述命令时,触发器已执行并引发错误,提示奖学金涨幅不能这么高。 ![]() Step5:更改触发器命令为了解决上述错误,我们将使用 ALTER TRIGGER 命令将 before_update_scholarship 触发器重命名为 scholarship_before_update。 输出 执行上述命令后,我们将获得以下消息窗口,该窗口显示特定触发器已成功从 before_update_scholarship 触发器重命名为 scholarship_before_update。 ![]() 查看触发器 SQL shell (PSQL)我们将按照以下过程在 psql 中查看触发器: 步骤 1 首先,我们将打开本地系统中的 psql,然后连接到要创建表的数据库。 步骤 2 要连接 Organization 数据库,我们将输入以下命令: 输出 执行上述命令后,我们将获得以下输出 ![]() 步骤 3 我们现在将输入以下命令以查看与 Organization 数据库中的表链接的所有触发器。 输出 执行上述命令后,我们将获得以下输出,该输出显示 Organization 数据库中存在的现有触发器,即 scholarship_before_update ![]() 注意:在 \dS 命令中,字母 S 为大写,或者如果我们使用 \ds,其中字母 s 为小写,则会发生以下错误![]() 更改触发器在 PostgreSQL 中,不包含 OR REPLACE 命令,该命令为我们提供了更改触发器解释的方法,例如 function,该函数将在执行触发器时实现。 因此,我们可以将这些命令包装在一个事务中,并使用 CREATE TRIGGER 和 DROP TRIGGER 命令。 让我们看一个示例来了解 DROP TRIGGER 和 CREATE TRIGGER 命令如何在事务中工作。 以下命令表示如何将 scholarship_before_update 触发器的 check_scholarship() 函数更改为 validate_scholarship Step1:开始事务要启动事务,我们可以使用以下语句 输出 执行上述命令后,我们将获得以下消息窗口,该窗口说明已成功执行指定的命令。 ![]() Step2:使用 DROP trigger 命令成功启动事务过程后,我们将执行以下 DROP TRIGGER 命令 输出 执行上述命令后,我们将获得以下输出,该输出显示已成功从 Student 表中删除特定触发器。 ![]() Step3:创建一个新触发器成功删除 scholarship_before_update trigger 后,我们创建一个新的触发器 scholarship_before_udpate,其名称类似,如以下命令所示 输出 执行上述命令后,我们将获得以下消息窗口,该窗口显示已成功为 Student 表插入了特定触发器。 ![]() Step4:提交事务为了使更改对其他会话(或用户)可见,我们需要借助 COMMIT 命令提交事务,如下所示 输出 执行上述命令后,我们将获得以下消息窗口,该窗口显示已成功为 Student 表提交了事务。 ![]() 概述在 PostgreSQL ALTER Trigger 部分中,我们学习了以下主题
|
我们请求您订阅我们的新闻通讯以获取最新更新。