1

2 つのフィールドの組み合わせを 1 つのフィールドに挿入しようとしていますが、これを行うたびに、データの切り捨てに関するエラーが発生します。

コード:

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) です

混合のどこかで 2 つのフィールドの連結、InventorFirst1 つのスペースInventorLastが 255 文字を超えているためです。連結された値のフィールドを作成するときは、両方のフィールドと追加の文字を合わせたサイズである必要があります。

InventorFullフィールドが文字である必要がある理由をより明確に説明するには、5112 つのフィールドが255文字であり、間に 1 文字を追加しています。

255 + 255 + 1 = 511

さらに、コメントに示されているように、これは5.0.3未満のMySQL バージョンでは機能しないことに注意してください。

于 2013-04-01T19:48:56.333 に答える