我错误地将一列创建为var(45),当我将表导出到cvs时,我看不到数字。
现在我想在使用此命令时将其设置为整数:
select cast(SIM as signed)
from sample.table1
我没有得到任何错误-所以我猜它会把它转换成int,对吗?但如何将新数据复制到新列?
我试过这个:
update
sample.table1
set SIM_NEW=cast(SIM as signed)
where id=id
但它不起作用
错误代码:1264。第1行“sim\u new”列的值超出范围
那我做错什么了?
sim列中的所有数据都是19位数字
sim\u new列是int(20)
谢谢,
1条答案
按热度按时间fslejnso1#
我假设
SIM_NEW
是INTEGER
.由于范围的原因,您得到了一个错误。整数不能处理17位数字。使用
DOUBLE
或者任何其他适合需要的数据类型,而不是INTEGER
创建时SIM_NEW
列。dbfiddle演示