2013-04-01 95 views
1

我想將2個字段的組合插入到一個字段中,每次我這樣做時,都會收到有關截斷數據的錯誤。插入文本上的MySQL錯誤1292

代碼:

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

錯誤:

Error Code: 1292. Truncated incorrect DOUBLE value: ' Rossi-Wolter '

所有的源字段是VARCHAR(64)的InventorFull場VARCHAR(511)我在做什麼錯?

回答

0

所以問題是,InventorFull需要基於對這種說法511字符:

All fields are VARCHAR(255)

因爲某處混合兩場InventorFirst的串聯,單空間,InventorLast大於255字符。當爲連續值構建字段時,它們需要是兩個字段的組合大小以及任何其他字符。

爲了更清楚地描述你的InventorFull字段需要511字符的原因 - 你的兩個領域是255字符你在加入之間的單個字符:

255 + 255 + 1 = 511 

進一步,如註釋中所示,值得注意的是,這對於小於 5.0.3的MySQL版本不起作用。

+0

你能給出一個數學證明嗎? – Kermit

+0

@FreshPrinceOfSO,我猜你在找'255 + 255 + 1'? –

+0

非常好。我認爲這在MySQL版本'''MySQL 5.0.3? – Kermit