加载XML更新表 - MySQL

时间:2011-05-08 00:56:38

标签: mysql sql xml load-data-infile

 LOAD XML LOCAL INFILE 'file1.xml'
 INTO TABLE my_table
 ROWS IDENTIFIED BY '<product>'"

是否可以使用此功能更新表格?

我使用了REPLACE INTO TABLE my_table但是只添加了新行而且它没有更新现有的行。

1 个答案:

答案 0 :(得分:1)

 LOAD XML LOCAL INFILE 'file1.xml'
 REPLACE 
 INTO TABLE my_table
 ROWS IDENTIFIED BY '<product>'"

请参阅:http://dev.mysql.com/doc/refman/5.5/en/load-xml.html

请注意:

  

REPLACE的工作方式与INSERT完全相同,只是如果表中的旧行与PRIMARY KEY或UNIQUE索引的新行具有相同的值,则在插入新行之前删除旧行。请参见第12.2.5节“INSERT语法”。

由于外键限制,MySQL可能无法删除现有行。

您可以通过以下方式解决此问题:

SET FOREIGN_KEY_CHECKS=0;
...load xml
SET FOREIGN_KEY_CHECKS=1;