事务以加载数据文件,然后更新列

时间:2019-02-07 21:51:59

标签: mysql sql

我正在尝试将新行加载到表中,然后使用上载的ID更新表中的其他列。我只上传ID,然后加入其他表以将其他数据提取到表中。我尝试过的查询:

START TRANSACTION
LOAD DATA LOW_PRIORITY LOCAL INFILE 'file path' REPLACE INTO 
    TABLE
        tablex CHARACTER SET
        latin1 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (`date_orderable`,
        `id1`,
        `id2,
        `id3,
        `d1`,
        `d2,
        `d3,
        );
update tablex a left join uber_data b on a.id1 = b.id1 
set a.d1 =b.d1;
update tablex a left join uber_data b on a.id2 = b.id2 
set a.d2 =b.d2;
update tablex a left join uber_data b on a.id2 = b.id1 
set a.d3 =b.d3;
COMMIT 

它表示运行时第2行存在错误。有人知道如何将数据加载到表中,然后更新新行吗?谢谢!

1 个答案:

答案 0 :(得分:0)

查询中存在几种语法错误:

  • 列表中的某些字段(例如d2,</code> should be <code>d2`,

  • d2,</code> should be <code>语句的末尾和START TRANSACTION;语句的末尾也缺少分号。如果没有分号,MySQL会尝试一次解析两个语句,这会产生语法错误