mysql可以运行在不同sql mode模式下面,sql mode模式定义了mysql应该支持的sql语法,数据校验等...
查看默認的sql?mode模式:
select?@@sql_mode;
我的數據庫是:
STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
在此模式下面,如果插入的數據的長度大于定義的長度,那么就會報錯!
?
set?session?sql_mode='REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI';
在這種模式下面:插入的數據的長度大于定義的時候,就會截取,并警告,但是可以插入進去
session表示只在本次中有效
global:表示在本次連接中不生效,而對于新的連接就生效
?
啟用NO_BACKSLASH_ESCAPES模式,使反斜線成為普通字符,在導入數據時候,如果數據中有反斜線,啟用這個模式是個不錯的選擇
?
啟用PIPES_AS_CNCAT模式,將||看成是普通字符串
?
常用的sql?mode:
?sql?mode值??說明?
?ANSI??'REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE和ANSI組合',這種模式使語法和行為更符合標準的sql?
?STRICT_TRANS_TABLES??使用與事務和非事務表,嚴格模式?
?TRADITIONAL??也是嚴格模式,對于插入不正確的值給出錯誤而不是警告。用在事務時,只要發生錯誤就立即回滾?
本文來自:?(www.91linux.com)?詳細出處參考:http://www.91linux.com/html/article/database/mysql/20081127/13955.html
這是我網上找到的資料
我覺得mysql_query("SET?sql_mode=''");這句的設定可能是為了不讓數據插入錯誤時不報錯。。。。。。。不知道大家怎么看?
轉載于:https://www.cnblogs.com/sandea/p/3711205.html
總結
以上是生活随笔為你收集整理的mysql可以运行在不同sql mode模式下面,sql mode模式定义了mysql应该支持的sql语法,数据校验等...的全部內容,希望文章能夠幫你解決所遇到的問題。