mysql truncated_mysql 由decimal 引起的 Warning: Data truncated for column
今天在使用python 库mysqldb的rawsql的时候遇到一个问题(其实并不是mysqlbean引起的)
cls.raw_sql('update {table} set available_amount=available_amount+%s, update_time=%s'
'where user_id=%s'.format(table=Points.Meta.table), amount, now, user_id)
这里我在数据库里面的available_amount字段类型是decimal(16, 2),然后这里更新的时候amount的类型也是decimal,精度同样是精确到小数点后面两位。
但是这里有个问题,在mysql下decimal如果跟string类型做加减法 会报出warning。
在很多情况下,我们使用的orm级别在数据库曝出warning的时候就会中止运行
错误复现:
mysql> update temporary set amount = amount+'0.01' where id=1;
Query OK,1 row affected, 1 warning (0.00sec)
Rows matched:1 Changed: 1 Warnings: 1mysql>show warnings;+-------+------+---------------------------------------------+
| Level | Code | Message |
+-------+------+---------------------------------------------+
| Note | 1265 | Data truncated for column 'amount' at row 1 |
+-------+------+---------------------------------------------+
1 row in set (0.00 sec)
为什么会造成这种情况, 因为尝试在mysql里面传递带引号的数字符串会被转成double类型。使用double类型可能会丢失精度在和decimal相加的时候。所以会报出warning
这种情况只会在字符串数 会丢失精度的情况下报出,所以有时候会出现时有时无的报错信息。
所以避免这种情况的办法就是让decimal直接加浮点型,或者直接使用
cast('12.22' as decimal(16, 2))
转换成一样的类型,再相加减同样可以解决这个问题。
希望能对同样遇到坑的盆友有所帮助。
mysql truncated_mysql 由decimal 引起的 Warning: Data truncated for column相关推荐
- Warning: Data truncated for column #39;AirPress#39; at row 1
/************************************************************************* Warning: Data truncated f ...
- Warning: Data truncated for column at row 1
MySQL在数据入库的时候报这个错: Warning: Data truncated for column at row 1 是因为插入的数据不合法造成的, 比如:乱码,超出字段长度,非法字符等, 我 ...
- MYsql的enum字段报错row,SQLSTATE[01000]: Warning: 1265 Data truncated for column at row 1错误代码解决方法
SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1 因为enum类型只支持数字型数据,而且出错率高,尤 ...
- mysql truncated_mysql中出现的Data truncated for column
mysql中想一个数据库中插入一条记录时,有可能因为好多原因,会出现Data truncated for column XXXXX的错误,这是因为你的数据类型的长度不一致导致的,仔细查看一下数据类型的 ...
- MySQL中 Data truncated for column ‘xxx‘解决方法
MySQL中 Data truncated for column 'xxx'解决方法 参考文章: (1)MySQL中 Data truncated for column 'xxx'解决方法 (2)ht ...
- pymysql 插入错误:Warning(1265, “Data truncated for column ‘XXXX‘ at row xxx“)
问题 最近用python使用pymysql插入数据时,报错了,我一口气插入了2W条数据,在中间报错了,如下图: 报错打印如下: Warning(1265, "Data truncated f ...
- Mysql ERROR 1265 (01000): Data truncated for column ‘XXX‘ at row X
关注微信公共号:小程在线 关注CSDN博客:程志伟的博客 报错: ERROR 1265 (01000): Data truncated for column 'name' at row 520 解决方 ...
- 用Python将excel数据插入到MySQL报错(1265, Data truncated for column ‘num‘ at row 1)
作为一个小白,这是第一篇帖子. 希望记录自己一路走来遇到的问题,也希望大佬指正. 一.背景: 用Python将数据逐行插入到MySQL. 二.问题: 但在python运行时发现总是报错(1265, D ...
- mysql导入文件出现Data truncated for column 'xxx' at row 1的原因
mysql导入文件的时候很容易出现"Data truncated for column 'xxx' at row x",其中字符串里的xxx和x是指具体的列和行数. 有时候,这是因 ...
最新文章
- 使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图
- ThreadPoolExecutor使用详解
- SpringBoot 使用【p6spy-spring-boot-starter】集成 p6spy 监控数据库(配置方法举例)
- c语言教程for,C语言菜鸟基础教程之for循环
- github设置仓库可见性 私人仓库设置他人协作/可见
- 在线HTTP请求/响应头转JSON工具
- 弹窗编辑jsp报表内数据
- Extjs 之dataview布局
- 全国青少年编程等级考试scratch三级真题2019年3月(含题库答题软件账号)
- 阿里云云原生一体化数仓入选 2022数博会“十佳大数据案例”
- Introduction to SAP CPI
- js封装倒计时函数实现倒计时效果
- 安装oracle数据库过程中系统表空间,Oracle数据库安装及配置
- C++获取汉字拼音/简拼/首字母
- 2019.7月面试题总结(三)
- 【TSOJ课程】20 1151 玛雅日历
- 基于MATLAB的指纹识别系统的设计与实现
- 外接显示器如何调整亮度
- 刘涛入职阿里P10,年薪150W+:不做演员,也很优秀
- tf_Course6循环神经网络
热门文章
- 摄影艺考用学计算机吗,不艺考能学摄影专业吗?哪些大学摄影专业不用艺考?
- 【CCF相关】CCF考试的形式以及难度
- 毕业设计-基于微信小程序的精准健康管理系统
- zanox付款账户银行支付的填写(注册图解)
- 谷歌AI专家说:你们都是瞎努力!道翰天琼认知智能机器人API接口平台为您揭秘。
- E-mail营销历史
- 微信报错:{errcode:40164,errmsg:invalid ip 113.139.105.115 ipv6 ::ffff:113.139.105.115, not in white
- 想给自己的实景三维模型做个案例集?Wish3D Earth再合适不过了
- Div + CSS 基础
- “无限流量”套餐何时替代WiFi