【发布时间】:2011-12-20 22:32:10
【问题描述】:
MySQL 有一个很好的语句:LOAD XML LOCAL INFILE
例如,如果你有这个表:
CREATE TABLE person (
person_id INT NOT NULL PRIMARY KEY,
fname VARCHAR(40) NULL,
lname VARCHAR(40) NULL
);
以及名为 person.xml 的以下 XML 文件:
<list>
<person>
<person_id>1</person_id>
<fname>Mikael</fname>
<lname>Ronström</lname>
</person>
<person>
<person_id>2</person_id>
<fname>Lars</fname>
<lname>Thalmann</lname>
</person>
</list>
你可以这样做:
LOAD XML LOCAL INFILE 'person.xml'
INTO TABLE person
ROWS IDENTIFIED BY '<person>';
我的问题是,如果 XML 文件中的列名与表中的不同,该怎么办?例如:
<list>
<person>
<PersonId>1</PersonId>
<FirstName>Mikael</FirstName>
<LastName>Ronström</LastName>
</person>
<person>
<PersonId>2</PersonId>
<FirstName>Lars</FirstName>
<LastName>Thalmann</LastName>
</person>
</list>
如何在不操作 XML 文件的情况下使用 MySQL 语句完成相同的操作?我到处搜索,但找不到答案。
【问题讨论】: