MySQL嚴格模式Strict Mode說明

何爲MySQL的嚴格模式,簡單來說就是MySQL自身對數據進行嚴格的校驗(格式、長度、類型等),比如一個整型字段我們寫入一個字符串類型的數據,在非嚴格模式下MySQL不會報錯,同樣如果定義了char或varchar類型的字段,當寫入或更新的數據超過了定義的長度也不會報錯。
        我認爲這個對於編程來說沒有任何好處,雖然我們儘量在代碼中做數據校驗。MySQL開啓了嚴格模式從一定程序上來講是對我們代碼的一種測試,如果我們的開發環境沒有開啓嚴格模式在開發過程中也沒有遇到錯誤,那麼在上線或代碼移植的時候將有可能出現不兼容的情況,因此在開發過程做最好開啓MySQL的嚴格模式。

 

1.開啓與關閉Strict Mode方法

找到MySQL安裝目錄下的my.cnf(windows系統則是my.ini)文件

在sql_mode中加入STRICT_TRANS_TABLES則表示開啓嚴格模式,如沒有加入則表示非嚴格模式,修改後重啓mysql即可

例如這就表示開啓了嚴格模式: 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

如果查找不到sql-mode=則在[mysqld]下加入即可。

 

2.Strict Mode功能說明

  • 不支持對not null字段插入null值
  • 不支持對自增長字段插入' '值
  • 不支持text字段有默認值

        總結,使用mysql嚴格模式可以使數據更加安全嚴格,缺點是減少了對空數據入庫的兼容性。建議開發環境使用嚴格模式以提高代碼的質量及對數據的嚴謹性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章