Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
[XML] XML-Dump in eine Datenbank einfügen
#1
Ich habe mich gefragt, ob es möglich ist, dass man einen XML-Dump (anstelle SQL-Dump) macht und diesen dann in MySQL wieder einfügen kann. Das geht!

Es gibt zwei Varianten, die ich ausprobiert habe:
  • Bestehende Tabelle löschen und alles neu erfassen
  • Daten an bestehende Tabelle anfügen (ID muss durchgängig sein)

Wenn die bestehende Tabelle gelöscht werden soll, dann muss in der xml-Datei folgendes enthalten sein:

Code:
<?xml version="1.0" encoding="utf-8"?>
<pma_xml_export version="1.0" xmlns:pma="https://www.phpmyadmin.net/some_doc_url/">
    <!--
    - Structure schemas
    -->
    <pma:structure_schemas>
        <pma:database name="testdb" collation="utf8_general_ci" charset="utf8">
            <pma:table name="jagd_transfersum">
                DROP TABLE IF EXISTS `jagd_transfersum`;
            </pma:table>
            <pma:table name="jagd_transfersum">
                CREATE TABLE `jagd_transfersum` (
                  `id` int(11) NOT NULL AUTO_INCREMENT,
                  `id_vorgang` int(11) DEFAULT NULL,
                  `betrag` float DEFAULT NULL,
                  `waehrung` char(10) DEFAULT NULL,
                  `erfassung` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
                  PRIMARY KEY (`id`)
                ) ENGINE=MyISAM AUTO_INCREMENT=2891 DEFAULT CHARSET=utf8;
            </pma:table>
        </pma:database>
    </pma:structure_schemas>

    <!--
    - Datenbank: 'testdb'
    -->
    <database name="testdb">
        <!-- Tabelle jagd_transfersum -->
        <table name="jagd_transfersum">
            <column name="id">1</column>
            <column name="id_vorgang">2163</column>
            <column name="betrag">3800000</column>
            <column name="waehrung">Dollar</column>
            <column name="erfassung">2012-12-08 20:02:30</column>
        </table>

Wenn die Daten zusätzlich in eine bestehende Tabelle erfasst werden sollen, dann muss der Part mit dem Lösch- bzw. Create-Befehl vorher herausgenommen werden:


Code:
<?xml version="1.0" encoding="utf-8"?>
<pma_xml_export version="1.0" xmlns:pma="https://www.phpmyadmin.net/some_doc_url/">
    <!--
    - Datenbank: 'testdb'
    -->
    <database name="testdb">
        <!-- Tabelle jagd_transfersum -->
        <table name="jagd_transfersum">
            <column name="id">1</column>
            <column name="id_vorgang">2163</column>
            <column name="betrag">3800000</column>
            <column name="waehrung">Dollar</column>
            <column name="erfassung">2012-12-08 20:02:30</column>
        </table>
        <table name="jagd_transfersum">
            <column name="id">2</column>
            <column name="id_vorgang">2433</column>
            <column name="betrag">7500000</column>
            <column name="waehrung">Dollar</column>
            <column name="erfassung">2012-12-08 22:29:48</column>
        </table>
        <table name="jagd_transfersum">
            <column name="id">3</column>
            <column name="id_vorgang">1474</column>
            <column name="betrag">7500000</column>
            <column name="waehrung">Dollar</column>
            <column name="erfassung">2012-12-09 09:43:14</column>
        </table>

Bei dieser Variante muss man die ID, die ein Autowert ist, natürlich durchgängig halten.
Zitieren Return to top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste