文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
3 其它设定
“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”的设定:
设定值 | 设定项目 |
---|---|
ANSI | REAL_AS_FLOAT、PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE |
DB2 | PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、 NO_TABLE_OPTIONS、NO_FIELD_OPTIONS |
MAXDB | PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、 NO_TABLE_OPTIONS、NO_FIELD_OPTIONS、NO_AUTO_CREATE_USER |
MSSQL | PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、 NO_TABLE_OPTIONS、NO_FIELD_OPTIONS |
MYSQL323 | NO_FIELD_OPTIONS、HIGH_NOT_PRECEDENCE |
MYSQL40 | NO_FIELD_OPTIONS、HIGH_NOT_PRECEDENCE |
ORACLE | PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、 NO_TABLE_OPTIONS、NO_FIELD_OPTIONS、NO_AUTO_CREATE_USER |
POSTGRESQL | PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、 NO_TABLE_OPTIONS、NO_FIELD_OPTIONS |
TRADITIONAL | STRICT_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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论