MySQL BEFORE UPDATE Trigger17 Mar 2025 | 4 分钟阅读 MySQL 中的 BEFORE UPDATE 触发器会在与该触发器关联的表上执行更新操作时自动调用。在本文中,我们将学习如何创建 BEFORE UPDATE 触发器,包括其语法和示例。 语法以下是在 MySQL 中创建 BEFORE UPDATE 触发器的语法 下面将解释 BEFORE UPDATE 触发器语法的参数
如果我们想执行多个语句,我们将使用 BEGIN END 块,其中包含一组查询来定义触发器的逻辑。请参见下面的语法 限制
BEFORE UPDATE 触发器示例让我们通过一个示例来了解如何使用 MySQL 中的 CREATE TRIGGER 语句来创建 BEFORE UPDATE 触发器。 假设我们已按如下方式创建了一个名为 sales_info 的表 接下来,我们将一些记录插入到 sales_info 表中,如下所示 然后,执行 SELECT 语句以查看表数据,如下所示 ![]() 接下来,我们将使用 CREATE TRIGGER 语句来创建 BEFORE UPDATE 触发器。此触发器将在表上发生更新事件之前自动调用。 如果触发器创建成功,我们将得到如下输出: ![]() 如果我们将 quantity 列的值更新为比当前值大两倍的新值,则触发器会产生错误消息并停止更新。 让我们详细了解已创建的触发器 首先,我们在 CREATE TRIGGER 子句中将触发器名称指定为 befor_update_salesInfo。其次,指定触发事件,然后指定触发器关联的表名。第三,我们声明了一个变量并设置了它的值。最后,我们指定了触发器体,该触发器检查新值是否是旧值的两倍,然后引发错误。 如何调用 BEFORE UPDATE 触发器?首先,我们可以使用以下语句来更新 id = 2 的行的 quantity 此语句运行良好,因为它不违反规则。接下来,我们将执行以下语句,将 id = 2 的行的 quantity 更新为 600 它将产生如下错误,因为它违反了规则。请参见下面的输出。 ![]() 如何在 MySQL workbench 中创建 BEFORE UPDATE 触发器?要使用 MySQL workbench 创建 BEFORE UPDATE 触发器,我们首先需要启动它,然后使用我们之前创建的用户名和密码登录。我们将看到如下屏幕 ![]() 现在执行以下步骤来创建 BEFORE UPDATE 触发器 1. 转到导航选项卡,然后单击包含 MySQL 服务器中所有可用数据库的模式菜单。 2. 选择数据库(例如,employeedb),双击它,然后显示包含 Tables、Views、Functions 和 Stored Procedures 的子菜单。请参见下面的屏幕。 ![]() 3. 展开 Tables 子菜单并选择要在其上创建触发器的表。选择表后,右键单击所选表(例如,sales_info),然后单击 Alter Table 选项。请参见下图 ![]() 4. 单击 Alter Table 选项会显示如下屏幕 ![]() 5. 现在,单击上一节中红色矩形框所示的Trigger 选项卡,然后选择 Timing/Event BEFORE UPDATE。我们会注意到有一个 (+) 图标按钮用于添加触发器。单击该按钮,根据选择的 Timing/Event,我们将获得触发器的默认代码 ![]() 6. 现在,完成触发器代码,再次进行审核,如果没有发现错误,请单击应用按钮。 ![]() 7. 单击 Apply 按钮后,单击 Finish 按钮完成。 ![]() 8. 如果我们查看 schema 菜单,将在 sales_info 表下看到 触发器 sales_info_before_update,如下所示 ![]() |
我们请求您订阅我们的新闻通讯以获取最新更新。