sql >> Database teknologi >  >> RDS >> Mysql

Masseindsættelse i MYSQL fra XML-filer

Prøv LOAD XML funktion (MySQL 6.0). Her er prøvekoden fra referencemanualen:

Brug af et XML-dokument person.xml indeholdende:

<?xml version="1.0"?>
<list>
  <person person_id="1" fname="Pekka" lname="Nousiainen"/>
  <person person_id="2" fname="Jonas" lname="Oreland"/>
  <person person_id="3"><fname>Mikael</fname><lname>Ronström</lname></person>
  <person person_id="4"><fname>Lars</fname><lname>Thalmann</lname></person>
  <person><field name="person_id">5</field><field name="fname">Tomas</field><field name="lname">Ulin</field></person>
  <person><field name="person_id">6</field><field name="fname">Martin</field><field name="lname">Sköld</field></person>
</list>

du ville oprette en tabel som sådan:

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

og brug følgende kommando til at importere XML:

LOAD XML LOCAL INFILE 'person.xml'
INTO TABLE person
ROWS IDENTIFIED BY '<person>';

Eller hvis du kører MySQL 5.0, kan du bruge LOAD_FILE at indlæse hele XML-dokumentet som en streng i en enkelt kolonne, og derefter parse det ved hjælp af MySQL's XPath-funktionalitet.

Denne artikel om MySQL.com har flere detaljer:Brug af XML i MySQL 5.1 og 6.0 .



  1. Generer et sæt eller en sekvens uden sløjfer – del 2

  2. Flere ELLER-klausuler i MySQL

  3. ADDDATE() vs DATE_ADD() i MySQL:Hvad er forskellen?

  4. Er det muligt at flytte en post fra en tabel til en anden ved hjælp af en enkelt SQL-sætning?