作者: falcon 發(fā)表日期: 2006-09-23 14:02
復(fù)制鏈接
讓mysql回歸傳統(tǒng)服務(wù)模式!
如果稍微用過mysql
你就會發(fā)現(xiàn),以前的一些版本的mysql對無效數(shù)據(jù)的約束是很“不傳統(tǒng)”的
比如,你把NULL插入NOT NULL字段,mysql服務(wù)器不會報錯
而僅僅是出現(xiàn)警告,然后你用show warnings可以查看到底警告你什么
有些情況,它連警告都不給
如果是這樣,那些not null的字段完整性約束簡直就成了一個擺設(shè)
還好,在MySQL 5.0.2之后這些約束更加嚴(yán)格拉
我們可以通過設(shè)置sql-mode環(huán)境變量來恢復(fù)“傳統(tǒng)”模式
——即對一些非空,唯一等的約束保持完整性
具體我們可以通過兩種辦法來弄
1。在啟動mysql的時候,加入--sql-mode='STRICT_TRANS_TABLES',即
Quote: |
path/to/mysqld --sql-mode='STRICT_TRANS_TABLES'
|
注意,需要有super權(quán)限。
2。啟動后也可以設(shè)置sql-mode變量
可以是針對當(dāng)前會話的,也可以是所有會話的
Quote: |
set [session|global] sql_mode='STRICT_TRANS_TABLES'
|
這樣設(shè)置了以后,就遵從標(biāo)準(zhǔn)的sql拉
在諸如把空數(shù)據(jù)插入非空字段的時候不再是警告而是報錯并且禁止插入數(shù)據(jù)。
參考資料: