ЗАГРУЗИТЬ ЛОКАЛЬНЫЙ ИНФАЙЛ XML с несогласованными именами столбцов

MySQL имеет хороший оператор: LOAD XML LOCAL INFILE

Например, если у вас есть эта таблица:

 CREATE TABLE person (
    person_id INT NOT NULL PRIMARY KEY,
    fname VARCHAR(40) NULL,
    lname VARCHAR(40) NULL
 );

и следующий файл XML называется person.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>

Как вы можете сделать то же самое Я искал везде, но не нашел ответа.

7
задан stepanian 3 January 2012 в 20:22
поделиться