1

これが私がこれまでに持っているSQLクエリです:

LOAD DATA INFILE 'filename.csv'
INTO TABLE zt_accubid
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 4 LINES

のフィールドが検出されたら、プロセスを終了できる必要がありますvalue="xyz"。これは可能ですか?

4

2 に答える 2

1

LOAD DATA INFILEにはそのようなオプションはありません。ただし、いくつかの回避策があります

  • 最初にファイルを操作することで、MySQL の外部で問題を解決できます。
  • Alain Collins が述べたように、マーカーを含む列に一意の値しかなく、トランザクションのLOAD DATA内部がない場合は、一意のキーをストッパーとして使用できます。
  • テーブルのトリガーをストッパーとして使用できます
  • マーカーがテーブルの終わり近くにある場合、またはオーバーヘッドが重要でない場合は、中間テーブルにフルを実行してから、関連するデータのみを最終テーブルに移動するためにLOAD DATA使用できます。INSERT INTO ... SELECT
  • 同様に、すべてのデータをロードしてから、無関係な部分を削除できます
于 2012-09-21T17:31:15.660 に答える
0

確かに - ロードの前にデータベースに行を置き、それに一意のキーを置きます。重複にヒットすると、LOAD は失敗するはずです。

于 2012-09-21T17:25:08.363 に答える