1

我正在尝试将 2 个字段的组合插入一个字段,每次执行此操作时都会收到有关截断数据的错误。

编码:

insert into sharppatentdb.Inventor (InventorFull)
select InventorFirst + " " + InventorLast 
from sharppatentdb.inventorsource;

错误:

错误代码:1292。截断不正确的 DOUBLE 值:“ Rossi-Wolter

所有源字段都是VARCHAR(64)InventorFull 字段是VARCHAR(511)我做错了什么?

4

1 回答 1

0

所以问题是InventorFull需要511基于这个语句的字符:

所有字段都是 VARCHAR(255)

因为在某个地方混合了两个字段的连接InventorFirst,单个空格,并且InventorLast大于 255 个字符。当您为连接值构建字段时,它们需要是两个字段以及任何其他字符的组合大小。

为了更清楚地描述您的InventorFull字段需要是511字符的原因 - 您的两个字段是255字符,并且您在两者之间添加了一个字符:

255 + 255 + 1 = 511

此外,如评论中所示,值得注意的是,这不适用于低于5.0.3 的 MySQL 版本。

于 2013-04-01T19:48:56.333 回答