我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

数据库管理工具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导航窗格中:

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

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

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

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

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

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

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

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

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

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

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


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

测试触发器

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

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

2、导航到最后一行。

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

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

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

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

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

结论

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


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

数据库管理开发工具Navicat Premium Mac怎么用

数据库管理开发工具Navicat Premium Mac怎么用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Navicat Premium Mac特别版是您早Mac平台上最好用
2023-06-05

Navicat Premium for Mac数据库管理开发工具的示例分析

Navicat Premium for Mac数据库管理开发工具的示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Navicat Premium Mac特别版是一款数据库
2023-06-05

编程热搜

目录