LOAD XML LOCAL INFILE 'file1.xml'
INTO TABLE my_table
ROWS IDENTIFIED BY '<product>'"
是否可以使用此功能更新表格?
我使用了REPLACE INTO TABLE my_table但是只添加了新行而且它没有更新现有的行。
答案 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;