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 也是嚴格模式,對于插入不正確的值給出錯誤而不是警告。用在事務時,只要發生錯誤就立即回滾
新聞熱點
疑難解答