我正在尝试将2个字段的组合插入到一个字段中,每次执行此操作时都会收到有关截断数据的错误。
代码:
insert into sharppatentdb.Inventor (InventorFull)
select InventorFirst + " " + InventorLast
from sharppatentdb.inventorsource;
错误:
错误代码:1292。截断错误的DOUBLE值:'
Rossi-Wolter
'
所有来源字段均为VARCHAR(64)
InventorFull字段为VARCHAR(511)
我做错了什么?
答案 0 :(得分:0)
所以问题是基于这个陈述,InventorFull
必须是511
个字符:
所有字段均为VARCHAR(255)
因为在混合的某个地方,两个字段InventorFirst
,单个空格和InventorLast
的串联大于255个字符。当您为连接值构建字段时,它们需要是两个字段的组合大小以及任何其他字符。
为了更清楚地描述您的InventorFull
字段需要511
个字符的原因 - 您的两个字段为255
个字符 和 你在两者之间添加一个字符:
255 + 255 + 1 = 511
此外,如评论中所示,值得注意的是,这不适用于 小于 5.0.3的MySQL版本。