2011-05-08 56 views
2
LOAD XML LOCAL INFILE 'file1.xml' 
INTO TABLE my_table 
ROWS IDENTIFIED BY '<product>'" 

是否可以使用此函數來更新表?加載XML更新表 - MySQL

我使用了REPLACE INTO TABLE my_table,但只添加了新行並且沒有更新現有行。

回答

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

需要注意的是:

更換作品酷似INSERT,不同之處在於,如果一個老行的表具有相同的值作爲新行的PRIMARY KEY或者是一個UNIQUE索引,舊行在插入新行之前被刪除。請參見第12.2.5節「INSERT語法」。

由於外鍵限制,MySQL可能無法刪除退出的行。

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

你可以解決這個問題