2011-05-08 5 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; 
:

다음과 같은 방법으로이 문제를 해결할 수 있습니다