暂无 |

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」模式,可是对于日期资料的检查又可以宽松一些,你可以执行下列的设定:

mysql_18_snap_15

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

mysql_18_snap_16

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

mysql_18_snap_17

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

mysql_18_snap_18

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

mysql_18_snap_19

你可以使用不同的设定项目,让资料库中的资料更符合自己的需求。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」。

0

java教程
php教程
php+mysql教程
ThinkPHP教程
MySQL
C语言
css
javascript
Django教程

发表评论

    评价:
    验证码: 点击我更换图片
    最新评论