彩票走势图

如何使用Navicat for MySQL 15来查看和设置严格模式?

转帖|行业资讯|编辑:鲍佳佳|2020-12-22 11:33:51.610|阅读 848 次

概述:在今天的博客中,我们将了解MySQL的严格SQL模式的后果,以及如何使用Navicat for MySQL 15来查看和设置它。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

Navicat for MySQL 是管理和开发 MySQL 或 MariaDB 的理想解决方案。它是一套单一的应用程序,能同时连接 MySQL 和 MariaDB 数据库,并与 Amazon RDS、Amazon Aurora、Oracle Cloud、Microsoft Azure、阿里云、腾讯云和华为云等云数据库兼容。这套全面的前端工具为数据库管理、开发和维护提供了一款直观而强大的图形界面。

点击下载 Navicat for MySQL最新试用版

第1部分:严格的SQL模式

没有为不可为null列提供值时出现错误可能是造成挫败感的巨大根源。通过为这些列设置默认值,可以最大限度地减少此类错误的发生。似乎很容易解决,但就如所有事情,细节都是魔鬼。您必须注意不要仅为了使INSERT更加简单就向表中添加一堆通用的和无用的数据。在今天的博客中,我们将了解MySQL的严格SQL模式的后果,以及如何使用Navicat for MySQL 15来查看和设置它。在第2部分中,我们将介绍在什么情况下采用默认值(以及何时不采用)。

严格的SQL模式和调整后的值

在MySQL中,您可以通过打开严格SQL模式来控制MySQL如何处理数据更改语句(例如INSERT或UPDATE)中的无效值或缺失值。当要插入的新行不包含其定义中没有显式DEFAULT子句的不可为NULL列的值时,会出现缺少值。如果严格模式无效,MySQL会为无效或缺失值插入调整后的值并产生警告。调整值的示例包括一个空字符串,零和00:00:00 0000-00-00的时间戳/日期。

很明显,调整后的值可能会破坏默认值的整体作用。因此,通常最好激活严格的SQL模式并在适当的地方提供默认值。在Navicat中,您可以在服务器监控器的“变量”选项卡上检查SQL模式的当前值。您可以在主菜单中的“工具”>“服务器监控器”下找到它。

sql_mode_variable (119K)

如果存在STRICT_ALL_TABLES或STRICT_TRANS_TABLES,则严格SQL模式已启用。 在决定使用哪种格式时,请注意后者更为宽容,因为如果缺少值,MySQL会为列数据类型插入适当的调整值,并生成警告而不是错误。 而且,语句的处理继续进行。 同时,无效值被转换为最接近的有效值。

执行严格的SQL模式

让我们使用Sakila示例数据库将严格SQL模式与默认SQL模式进行比较。 actor表不允许任何列中为 null,如“不是 null”标题下的复选框所示:

sql_mode_variable (119K)

如果我们使用SET命令为当前会话禁用严格SQL模式并执行仅提供last_name的INSERT,则数据库会接受它,但为first_name提供空字符串:

sql_mode_variable (119K)

如果我们重新激活严格模式,则相同的INSERT现在会失败,并显示一条错误消息:

sql_mode_variable (119K)

总结

在今天的博客中,我们了解了MySQL严格SQL模式的影响,以及如何使用 Navicat for MySQL 15进行查看和设置。在第二部分中,我们将介绍何时使用或不使用默认值。

好消息!慧都17周年庆,隆重推出购正版软件送苹果手机、电脑、3C数码等豪礼!.NET报表控件Navicat For MySql正版授权最高直降40935 元!更多优惠咨询


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP