千家信息网

数据库管理工具Navicat Premium,使用MySQL 8中的触发器验证数据

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,Navicat Premium 是一套数据库管理工具,让你使用一个程序即可同時连接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 数据库。它
千家信息网最后更新 2026年11月01日数据库管理工具Navicat Premium,使用MySQL 8中的触发器验证数据

Navicat Premium 是一套数据库管理工具,让你使用一个程序即可同時连接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 数据库。它与 Amazon RDS、Amazon Aurora、Amazon Redshift、Microsoft Azure、Oracle Cloud、MongoDB Atlas、阿里云、腾讯云和华为云等云数据库兼容。

有一些非常好的理由可以解释为什么数据验证最好在数据库级别而不是在应用程序级别执行。例如,多个应用程序可以访问相同的数据源。因此,您可以依赖于数据的一致性和有效性,而不必依赖于在应用程序端应用的验证逻辑,这可能在不同的实现中不一致。此外,触发器是验证的理想选择,因为它们可以在插入或更新数据之前执行。触发器还可以防止在提供错误消息时应用数据库事务。

在这篇文章中,我们将在Navicat Premium中编写一个触发器,用于验证MySQL数据库表上的插入操作。

设计触发器

我们将使用Sakila示例数据库。它包含一些以虚构视频租赁店为主题的相关表格。在这里,他们在Navicat Premium导航窗格中:

我们将把触发器添加到电影表中。如果您在Designer中打开它,您会看到有几个选项卡:

单击"触发器"选项卡可显示已为该表定义了一些触发器。例如,ins_film触发器将胶片信息复制到数据插入的film_text表中。这是分配给触发器的常见任务。

现在我们将添加一个触发器,确保使用original_language_id插入外国电影。

电影的语言实际存储在语言查找表中:

LANGUAGE_ID名称最后更新
1英语2006-02-15 05:02:19
2意大利2006-02-15 05:02:19
3日本2006-02-15 05:02:19
4普通话2006-02-15 05:02:19
5法国2006-02-15 05:02:19
6德语2006-02-15 05:02:19

除1之外的任何language_id也应具有original_language_id。我们的触发器将检查original_language_id列中的值。

1、在电影表的"设计视图"中,选择"触发器"选项卡,然后单击"添加触发器"按钮。

这将在触发器表中添加一个新行。

2、分配名称"ins_validate_language",从Fires下拉菜单中选择BEFORE,然后单击Insert复选框。

3、这是触发器Body:

BEGIN  IF NEW.language_id != 1 AND NEW.original_language_id IS NULL  THEN    SIGNAL SQLSTATE '45000'      SET MESSAGE_TEXT = 'Original language id is required for Foreign language films.';  END IF;END

这是我们的触发器,填写了所有字段:


4、单击"保存"按钮以创建触发器。

测试触发器

现在是时候验证我们的触发器是否按预期工作。为了测试它,让我们用一个外语language_id为电影表添加一个新行。

1、在编辑器中打开电影表。

2、导航到最后一行。

3、选择表单视图,然后单击加号(+)按钮添加新行:

4、在表单中,您只需输入标题和language_id;所有其他字段都具有默认值或不是必需的。

5、单击添加(复选标记)按钮时,您应该看到我们的错误消息:

结论

触发器是验证的理想选择,因为它们可以在插入或更新数据之前执行。我们通过在Navicat Premium中编写触发器,了解了如何将触发器用于验证目的。


触发器 数据 数据库 验证 电影 应用 选择 按钮 程序 应用程序 这是 新行 更新 一致 名称 字段 消息 理想 级别 表单 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 手磨咖啡 互联网络科技 港股互联网科技股 深圳科技互联网 互联网金融 科技金融 合肥互联网科技公司 猫创互联网科技 无锡溥仪互联网科技有限公司 南平创想时代互联网科技有限公司 中和天地互联网科技有限公司 互联网第三次科技革命特征 智帮互联网科技公司最近动向 世界互联网科技成果奖 银川新华互联网科技学校是国营吗 科技信息时代互联网发展 广西泛欧互联网科技有限公司 互联网科技创新创业项目 亚光科技低轨卫星互联网 瑞安市蟠桃会互联网科技有限公司 六子台科技互联网展会 科技互联网企业 互联网科技公司税收优惠 狮子座互联网科技有限公司 互联网科技缩写 哈尔滨新华互联网科技 无锡工业互联网科技有限公司 互联网科技职业技能培训学校 盐城市攀科互联网科技有限公司 恒生科技互联网指数十大成分股 知域互联网科技有限公司官网
0