鍍金池/ 問答/PHP  數(shù)據(jù)庫/ 在mysql中向一個(gè)字符串類型的字段插入超過定義長(zhǎng)度的字符串,沒有自動(dòng)截取,而是

在mysql中向一個(gè)字符串類型的字段插入超過定義長(zhǎng)度的字符串,沒有自動(dòng)截取,而是直接報(bào)錯(cuò)?

mysql是Mac版的 ,在表class(下圖1)中插入數(shù)據(jù)長(zhǎng)度超過表中定義的長(zhǎng)度直接報(bào)錯(cuò),而不是像windows中自動(dòng)解決。

表結(jié)構(gòu)

圖片描述

相關(guān)代碼

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

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

怎么跟Windows中不一樣???

回答
編輯回答
哎呦喂

get了。。。

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

Mysql版本不一樣,默認(rèn)處理行為不一樣

MySQL 5.5.*

clipboard.png

MySQL 5.7.*

clipboard.png

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

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

要想超過長(zhǎng)度自動(dòng)截取插入,則設(shè)置sql_mode=ANSI;

2018年8月8日 01:57