讓mysql回歸傳統服務模式!
作者: 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拉
在諸如把空數據插入非空字段的時候不再是警告而是報錯并且禁止插入數據。
參考資料: