作者: falcon 发表日期: 2006-09-23 14:02
复制链接
让mysql回归传统服务模式!
如果稍微用过mysql
你就会发现,以前的一些版本的mysql对无效数据的约束是很“不传统”的
比如,你把NULL插入NOT NULL字段,mysql服务器不会报错
而仅仅是出现警告,然后你用show warnings可以查看到底警告你什么
有些情况,它连警告都不给
如果是这样,那些not null的字段完整性约束简直就成了一个摆设
还好,在MySQL 5.0.2之后这些约束更加严格拉
我们可以通过设置sql-mode环境变量来恢复“传统”模式
——即对一些非空,唯一等的约束保持完整性
具体我们可以通过两种办法来弄
1。在启动mysql的时候,加入--sql-mode='STRICT_TRANS_TABLES',即
Quote: |
path/to/mysqld --sql-mode='STRICT_TRANS_TABLES'
|
注意,需要有super权限。
2。启动后也可以设置sql-mode变量
可以是针对当前会话的,也可以是所有会话的
Quote: |
set [session|global] sql_mode='STRICT_TRANS_TABLES'
|
这样设置了以后,就遵从标准的sql拉
在诸如把空数据插入非空字段的时候不再是警告而是报错并且禁止插入数据。
参考资料: