什么是sql_mode?
sql_mode是MySQL數據庫的一個設置,它影響了數據庫在處理SQL語句時的一些行為方式。最新的MySQL 5.7版本中,sql_mode被重構為一個包含多個子項的列表。每個子項會影響數據庫在不同方面的行為。
什么是sql_mode = "STRICT_TRANS_TABLES"?
在MySQL 5.7版本中,sql_mode="STRICT_TRANS_TABLES"是默認開啟的。它的主要作用是對于任何不符合完整性約束的語句(例如非空字段賦值NULL),都會導致查詢錯誤,并且不允許這些語句進行提交和執行。
sql_mode = "ONLY_FULL_GROUP_BY"
sql_mode="ONLY_FULL_GROUP_BY"是發現錯誤的好方法。在MySQL 5.7版本中,這個配置項開啟后,只有GROUP BY子句中列出的列或者聚合函數的聚合結果才可以用于SELECT查詢返回。假如GROUP BY中包含其他的列并且沒有用于計算聚合結果,MySQL將會報錯。
sql_mode = "NO_ZERO_DATE"
有時候我們可能會錯誤地插入'0000-00-00'等非法日期,雖然MySQL在某些情況下能夠接受該日期,但實際上這個日期是不存在的。開啟sql_mode="NO_ZERO_DATE"后,MySQL將禁止插入非法日期,同時也禁止在更新操作中將該日期更新為NULL值。
sql_mode = "ERROR_FOR_DIVISION_BY_ZERO"
在MySQL 5.7版本中,sql_mode="ERROR_FOR_DIVISION_BY_ZERO"表示如果除數為0時,直接返回一個錯誤。如果沒有開啟此功能,MySQL會返回NULL或0,因此開啟該功能可以更準確地發現應用程序中對于除數為0的錯誤。
上一篇jsp的.css代碼
下一篇jsp的引用css路徑