mysql: Data truncated for column ‘id‘ at row 1
前言今天在update数据的时候遇到了一个奇怪的错误,我从一些数据中select并create table到另一个表,然后执行双表update操作,然后就遇到一下问题:Caused by: java.sql.SQLException: Data truncated for column 'id' at row 1create table enterprise_import_tier2 as (se
·
前言
今天在update数据的时候遇到了一个奇怪的错误,我从一些数据中select并create table到另一个表,然后执行双表update操作,然后就遇到一下问题:
Caused by: java.sql.SQLException:
Data truncated for column 'id' at row 1
create table enterprise_import_tier2 as (
select REPLACE(GROUP_CONCAT(u.bid_enterprise,';'),',;',';') as bid_enterprise,u.enterprise_id,max(price) as price,max(business_status) as business_status
,max(province) as province ,max(city) as city,max(bid_province) as bid_province
from enterprise_import u
where u.business_status=2 and u.enterprise_id is not null and u.enterprise_id>0
group by u.enterprise_id
);
update enterprise u,enterprise_import_tier2 uf
set u.price=uf.price,u.business_status=uf.business_status,u.update_time=now(),
u.province=uf.province,u.city=uf.city
where u.enterprise_id=uf.enterprise_id and char_length(u.bid_enterprise)<100;
解决方案
出现这个错误,一般在于更新的字段类型
和长度
不对等。
最后发现起因是数据变长了,导致create table的时候从varchar(255)
变成了varchar(256)
,这可能是数据问题,也可能是因为使用了Group_Concat拼接导致字段变长。但是anyway,只要找到原因就可以解决了。也就是:
让报错的字段的
数据类型
和长度
保持一直即可!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献14条内容
所有评论(0)