从带有bash的文件中插入和编辑



我正在使用bash在mySQL中加载文件,我有:

mysql --local-infile=1 -u user data_base_1 < file.sql

和file.sql是:

..$ cat file.sql
 load data local infile '/folder/load.csv' into table table_1 fields terminated by '|'

代码正常。

问题是,如果文件中存在一个行的PK,则不会插入行,如果存在该行存在并替换表中的行,我需要。我该怎么办?

谁可以帮助我?

谢谢

您可以用LOAD DATA指定REPLACE

LOAD DATA LOCAL INFILE '/folder/load.csv' REPLACE INTO TABLE table_1 FIELDS TERMINATED BY '|'

否则使用mysqlimport --replace选项。

http://dev.mysql.com/doc/refman/5.6/en/mysqlimport.html#option_mysqlimport_replace

您可以加载到临时表中,然后执行两个SQL语句:

UPDATE table
 WHERE ... (match found)
;
INSERT into table(...)
SELECT ...
  FROM temp_table
 WHERE NOT EXISTS(...)

相关内容

  • 没有找到相关文章

最新更新