0

これは以前の質問へのフォローアップです: MySQL LOAD DATA INFILE で文字列位置を指定する方法

一時テーブルの TEXT フィールドに長い行をロードすると、256 文字に切り捨てられます。この同じ行に INSERT を使用すると、切り捨てられません。

MySQLのドキュメントには、LOAD DATA INFILE が固定サイズの行をサポートしていないことが記載されています。

一部のケースは、LOAD DATA INFILE でサポートされていません。

固定サイズの行 (FIELDS TERMINATED BY と FIELDS ENCLOSED BY の両方が空) および BLOB または TEXT 列。

しかし、それは本当に理由を説明していません。入力ファイルを変更せずにこれを回避する方法はありますか?

.txt ファイルの行の例: 012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789ONEHUNDRED012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789TWOHUNDRED012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789TREHUNDRED

4

1 に答える 1

1

ドキュメントに記載されているのは、固定サイズの行モードTEXTでは列がサポートされていないということです。ただし、この場合は行全体を 1 つのフィールドとして読み取るため、固定サイズ モードを使用する必要はありません。どの行にも発生しないフィールドセパレーターを指定するだけです。たとえば、ファイルにタブ文字が含まれていない場合は、句を省略して、タブをデフォルトのフィールド区切り文字として使用します。FIELDS TERMINATED BY

LOAD DATA INFILE 'yourfile' INTO TABLE tmp_lines
  LINES TERMINATED BY '\r\n';
于 2013-09-25T20:38:31.337 に答える