返回介绍

3 其它设定

发布于 2025-02-20 13:00:33 字数 2297 浏览 0 评论 0 收藏 0

“sql_mode”变量设定为“non-strict”或“strict”模式后,还可以依照自己的需求加入额外的设定:

设定值说明
ALLOW_INVALID_DATES允许错误的日期资料
NO_ZERO_DATE不允许全部是 0 的日期资料
NO_ZERO_IN_DATE日期资料中不可以有 0
ERROR_FOR_DIVISION_BY_ZERO除以 0 时产生错误,而不是产生 NULL 值

如果你希望数据库设定为“strict”模式,可是对于日期资料的检查又可以宽松一些,你可以执行下列的设定:

加入“ALLOW_INVALID_DATES”的设定以后,就算是“2000-02-31”这样一个错误的日期资料,数据库也会储存它,不会有任何警告或错误讯息:

日期型态的字段,不论在“non-strict”或“strict”模式下,你都可以储存年月日为 0 的日期资料,不会产生任何警告或错误讯息。如果不希望储存这样的日期资料,你可以加入“NO_ZERO_DATE”与“NO_ZERO_IN_DATE”的设定:

如果在你执行的叙述中出现除以零的运算式,数据库会产生“NULL”值,并不会产生任何警告或错误讯息。你可以加入“ERROR_FOR_DIVISION_BY_ZERO”设定:

在叙述中出现除以零的运算式时,数据库会产生除以零的错误讯息:

你可以使用不同的设定项目,让数据库中的资料更符合自己的需求。MySQL 也为你准备了许多不同的设定组合,让你可以方便的完成“sql_mode”的设定:

设定值设定项目
ANSIREAL_AS_FLOAT、PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE
DB2PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、 NO_TABLE_OPTIONS、NO_FIELD_OPTIONS
MAXDBPIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、 NO_TABLE_OPTIONS、NO_FIELD_OPTIONS、NO_AUTO_CREATE_USER
MSSQLPIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、 NO_TABLE_OPTIONS、NO_FIELD_OPTIONS
MYSQL323NO_FIELD_OPTIONS、HIGH_NOT_PRECEDENCE
MYSQL40NO_FIELD_OPTIONS、HIGH_NOT_PRECEDENCE
ORACLEPIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、 NO_TABLE_OPTIONS、NO_FIELD_OPTIONS、NO_AUTO_CREATE_USER
POSTGRESQLPIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、 NO_TABLE_OPTIONS、NO_FIELD_OPTIONS
TRADITIONALSTRICT_TRANS_TABLES、STRICT_ALL_TABLES、NO_ZERO_IN_DATE、NO_ZERO_DATE、ERROR_FOR_DIVISION_BY_ZERO、NO_AUTO_CREATE_USER

注:“sql_mode”的完整设定可以参考 MySQL 参考手册中的“5.2.6. SQL Modes”。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文