【发布时间】:2011-08-20 23:09:30
【问题描述】:
LOAD XML LOCAL INFILE 'file1.xml'
INTO TABLE my_table
ROWS IDENTIFIED BY '<product>'"
是否可以使用此功能更新表格?
我使用了 REPLACE INTO TABLE my_table,但它只添加了新行,并没有更新现有行。
【问题讨论】:
标签: 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,但它只添加了新行,并没有更新现有行。
【问题讨论】:
标签: mysql sql xml load-data-infile
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;
【讨论】: