mysql: Data truncated for column ‘id‘ at row 1

爱被打了一巴掌 2023-01-03 14:29 339阅读 0赞

前言

今天在update数据的时候遇到了一个奇怪的错误,我从一些数据中select并create table到另一个表,然后执行双表update操作,然后就遇到一下问题:

Caused by: java.sql.SQLException: Data truncated for column 'id' at row 1

  1. create table enterprise_import_tier2 as (
  2. select REPLACE(GROUP_CONCAT(u.bid_enterprise,';'),',;',';') as bid_enterprise,u.enterprise_id,max(price) as price,max(business_status) as business_status
  3. ,max(province) as province ,max(city) as city,max(bid_province) as bid_province
  4. from enterprise_import u
  5. where u.business_status=2 and u.enterprise_id is not null and u.enterprise_id>0
  6. group by u.enterprise_id
  7. );
  8. update enterprise u,enterprise_import_tier2 uf
  9. set u.price=uf.price,u.business_status=uf.business_status,u.update_time=now(),
  10. u.province=uf.province,u.city=uf.city
  11. where u.enterprise_id=uf.enterprise_id and char_length(u.bid_enterprise)<100;

解决方案

出现这个错误,一般在于更新的字段类型长度不对等。

最后发现起因是数据变长了,导致create table的时候从varchar(255)变成了varchar(256) ,这可能是数据问题,也可能是因为使用了Group_Concat拼接导致字段变长。但是anyway,只要找到原因就可以解决了。也就是:

让报错的字段的 数据类型长度保持一直即可!

发表评论

表情:
评论列表 (有 0 条评论,339人围观)

还没有评论,来说两句吧...

相关阅读