In diesem Szenario tritt beim Versuch, eine XML-Datei mit in eine MySQL-Datenbanktabelle zu importieren, ein Fehler auf den LOAD XML-Befehl. Das Problem entsteht aufgrund einer Diskrepanz zwischen der Anzahl der Felder in der Tabelle und den Werten in der XML-Datei, wobei die Tabelle über ein zusätzliches ID-Feld für die automatische Inkrementierung verfügt.
Um diesen Fehler zu beheben, können Sie Folgendes angeben Felder, die explizit mit der LOAD XML-Anweisung importiert werden sollen. Mit der folgenden SQL-Anweisung wird dies erreicht:
<code class="sql">LOAD XML LOCAL INFILE '/pathtofile/file.xml' INTO TABLE my_tablename(personal_number, firstname, lastname, email, start_time, end_time, employee_category);</code>
Durch die Angabe der Feldnamen weisen Sie MySQL an, das fehlende ID-Feld während des Importvorgangs zu überspringen. Das ID-Feld wird automatisch mit inkrementellen Werten gefüllt, die auf den Einstellungen für die automatische Inkrementierung der Tabelle basieren.
Alternative Methode mit Spaltenzuordnung
Bei Bedarf können Sie auch die verwenden XML_LOAD()-Funktion zum Importieren von XML-Daten in MySQL. Diese Funktion bietet mehr Flexibilität und ermöglicht eine explizite Spaltenzuordnung:
<code class="sql">SET @xmlData = XML('<resultset statement="...">...</resultset>'); SELECT XML_LOAD(@xmlData, '/resultset/row', '(personal_number, firstname, lastname, email, start_time, end_time, employee_category)' INTO TABLE my_tablename);</code>
In diesem Fall analysiert die Funktion XML_LOAD() die XML-Daten und füllt die Tabelle my_tablename basierend auf der in der INTO TABLE-Klausel angegebenen Spaltenzuordnung .
Durch die Verwendung einer dieser Methoden können Sie XML-Daten erfolgreich in Ihre MySQL-Datenbanktabelle importieren, indem Sie das fehlende ID-Feld überspringen und sich auf die Funktion zur automatischen Inkrementierung verlassen Generieren Sie eindeutige Bezeichner für jede Zeile.
Das obige ist der detaillierte Inhalt vonWie importiere ich XML-Dateien mit einer fehlenden ID-Spalte mithilfe von LOAD XML und XML_LOAD() in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!