小编典典

加载XML更新表-MySQL

sql

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

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

我使用REPLACE INTO TABLE my_table,但是仅添加了新行,并且没有更新现有行。


阅读 174

收藏
2021-04-28

共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节“泪NSERT语法”。

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

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

SET FOREIGN_KEY_CHECKS=0;
...load xml
SET FOREIGN_KEY_CHECKS=1;
2021-04-28