MySQLdb,写入表时,出现的 1265, "Data truncated for column"告警,如何精准捕捉原数据内容?

2020-11-15 13:48:13 +08:00
 uti6770werty
C:\Users\Administrator\venv\lib\site-packages\pymysql\cursors.py:170: Warning: (1265, "Data truncated for column '前百分比' at row 1")
  result = self._query(query)
C:\Users\Administrator\venv\lib\site-packages\pymysql\cursors.py:170: Warning: (1265, "Data truncated for column '后百分比' at row 1")
  result = self._query(query)
C:\Users\Administrator\venv\lib\site-packages\pymysql\cursors.py:170: Warning: (1265, "Data truncated for column '现百分比' at row 1")
  result = self._query(query)

数据来源杂,量大,而且写入是多线程,
1265 这种告警,又并非是一种异常错误,用 try,except,print 大法也无法捞出具体是怎么样的数据被自动切长短,
尽管表的字段长度都调过了进行适配,依然会偶然跳一下 1265 告警,于是只能怀疑数据来源处理得有些不干净,
又不好定位是什么原因。。。

        from dbutils.pooled_db import PooledDB
        POOL = PooledDB(xxx)
        DBconn = POOL.connection()
        cur = DBconn.cursor()
        cur.execute(sqlcmdtext)
        cur.close()
        DBconn.close()
2319 次点击
所在节点    Python
5 条回复
johnsona
2020-11-15 16:10:22 +08:00
mongodb
wuwukai007
2020-11-15 18:19:27 +08:00
入库前对数据做一下长度检验呢
liprais
2020-11-15 18:31:01 +08:00
strict mode 会抛异常
xuanbg
2020-11-15 19:14:08 +08:00
前百分比这个字段的内容长度超了啊。写入前校验一下数据长度,把超长的 log 出来看看不就知道啦。
lolizeppelin
2020-11-16 10:35:14 +08:00
关键词 warning filter

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/725439

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX