鍍金池/ 問答/Java  數(shù)據(jù)庫/ mysql插入操作丟失部分字段值,如何解決?

mysql插入操作丟失部分字段值,如何解決?

情況是這樣的,最近系統(tǒng)偶爾會(huì)出現(xiàn)Mysql插入操作的時(shí)候,一條記錄的部分字段數(shù)據(jù)丟失,我查看打印的sql語句時(shí)有值的,比如:
圖片描述

就是紅筆畫出的那兩個(gè)值, 在數(shù)據(jù)庫里面是 沒有保存到的:
圖片描述

插入操作前 ,我輸出過 實(shí)體類的屬性,確認(rèn)是有值的,然后我也打印了插入SQL ,如圖1 ,也是有值的,所以想知道為什么導(dǎo)致這樣的問題?

已知:
1:沒有其他更新操作 影響到 這條數(shù)據(jù), 因?yàn)榇_認(rèn)過時(shí)間,還有打印的SQL語句
2:在數(shù)據(jù)庫字段長度里面,這兩個(gè)字段長度都是足夠的
3:偶爾會(huì)出現(xiàn)這樣的問題,一出現(xiàn)就不是1、2條問題,而是一連串的

-------------2018-05-30 16:09補(bǔ)充---------------------

剛?cè)シ?wù)器查看的binlog:
是有執(zhí)行插入語句 并且有值
INSERT INTO jn_ebs_order_header ( id,order_id,order_sn,order_add_time,order_status,pay_status,sale_type,ware_house,order_amount,goods_amount,shipping_fee,pay_type,pay_id,pay_name,pay_time,pay_sn,serial_no,user_id,user_mobile,user_settle_status,user_settle_time,discount_mode,pop_period_no,bonus,recharge,discount_amount,suppliers_id,suppliers_code,suppliers_name,marketing_type,operate_id,service_fee_deduction,service_amount,shipping_status,pop_status,invoice_status,refund,refund_amount,cost_rate,created_by_user,created_office,created_dtm_loc,created_time_zone,updated_by_user,updated_office,updated_dtm_loc,updated_time_zone,bonus_platform,bonus_shop ) VALUES( null,286349,'18052917587253',1527605225,1,2,0,'jn020',294.85,276.00,18.85,1,2,'微信app支付',1527605256,'527605243056968001687','4200000130201805291425980374',33437,'13924928030',0,0,'','',0.00,0.00,0.00,1697,'S1803150001','廣州小蜜蜂果際貿(mào)易有限公司',1,0,null,null,0,0,0,0,0,'{"platform":"100.00","shop":"0.00"}','','','2018-05-29 22:48:01','','','','2018-05-29 22:50:04','',null,null )

回答
編輯回答
怪痞

這種情況很少見了,但是驗(yàn)證的方法很簡單。
你去把自己寫的sql拿出來,然后把沒有插入成功那條記錄帶入,不通過代碼,執(zhí)行一次sql。(其實(shí)就是手動(dòng)插入一條記錄,看這兩個(gè)字段是否有值)
如果有值,那么很可能是你的sql跟實(shí)體類屬性或者跟數(shù)據(jù)庫字段哪個(gè)地方?jīng)]有對(duì)應(yīng)好。

2017年9月2日 17:36