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 回答