Mysql5.5表結(jié)構(gòu)為:CREATETABLE`account`(`name`varchar(20)NOTNULL,PRIMARYKEY(`name`))ENGINE=InnoDBDEFAULTCHARSET=gbk;name字段目前的編碼:CharacterSet:gbkCollation:gbk_chinese_ci目前我的程序邏輯為:首先:select*from`account`where`name`=?如果返回空,則插入該name:insertinto`account`(`name`)values(?)現(xiàn)在在我后臺有幾個報錯記錄:com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException:Duplicateentry'?§ˉ???'forkey'PRIMARY'(請忽略name為亂碼,這可能是我輸出記錄文本導(dǎo)致的)我的問題是,為什么我明明先select了該name,沒有我才會insert,還會導(dǎo)致這個異常?這是否跟我設(shè)置了name字段為gbk編碼有關(guān)?有沒相關(guān)參考文章可以提供給我看下?應(yīng)該將該字段編碼設(shè)置為什么來避免這個問題?BTW:使用ignore參數(shù)當(dāng)然可以忽略該異常,但我主要想知道為什么之前select無法獲取,Insert卻出錯
[Mysql] Select 不到,Insert出錯的問題,字段編碼問題
胡說叔叔
2019-04-07 09:38:32