鍍金池/ 問答/PHP  數據庫/ 在mysql中向一個字符串類型的字段插入超過定義長度的字符串,沒有自動截取,而是

在mysql中向一個字符串類型的字段插入超過定義長度的字符串,沒有自動截取,而是直接報錯?

mysql是Mac版的 ,在表class(下圖1)中插入數據長度超過表中定義的長度直接報錯,而不是像windows中自動解決。

表結構

圖片描述

相關代碼

insert into class(name) values('0123456789a');

執(zhí)行結果:
圖片描述

怎么跟Windows中不一樣???

回答
編輯回答
哎呦喂

get了。。。

2017年4月24日 14:21
編輯回答
玩控

Mysql版本不一樣,默認處理行為不一樣

MySQL 5.5.*

clipboard.png

MySQL 5.7.*

clipboard.png

2017年10月18日 11:05
編輯回答
安若晴

sql_mode設置不一樣導致的。
執(zhí)行show variables like 'sql_mode';在mac上應該是顯示包含STRICT_TRANS_TABLES嚴格模式,在windows上應該是顯示包含ANSI寬松模式。
具體的sql_mode查看傳送門

要想超過長度自動截取插入,則設置sql_mode=ANSI;

2018年8月8日 01:57