Dalam senario ini, anda menghadapi ralat semasa cuba mengimport fail XML ke dalam jadual pangkalan data MySQL menggunakan arahan LOAD XML. Isu ini timbul disebabkan oleh ketidakpadanan antara bilangan medan dalam jadual dan nilai dalam fail XML, dengan jadual mempunyai medan id kenaikan automatik tambahan.
Untuk menangani ralat ini, anda boleh menentukan medan untuk diimport secara eksplisit menggunakan pernyataan LOAD XML. Pernyataan SQL berikut akan mencapai ini:
<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>
Dengan menyatakan nama medan, anda mengarahkan MySQL untuk melangkau medan id yang hilang semasa proses import. Medan id akan diisi secara automatik dengan nilai tambahan berdasarkan tetapan autokenaikan jadual.
Kaedah Ganti dengan Pemetaan Lajur
Jika mahu, anda juga boleh menggunakan Fungsi XML_LOAD() untuk mengimport data XML ke dalam MySQL. Fungsi ini memberikan lebih fleksibiliti dan membolehkan pemetaan lajur eksplisit:
<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>
Dalam kes ini, fungsi XML_LOAD() menghuraikan data XML dan mengisi jadual my_tablename berdasarkan pemetaan lajur yang dinyatakan dalam klausa INTO TABLE .
Dengan menggunakan salah satu kaedah ini, anda boleh berjaya mengimport data XML ke dalam jadual pangkalan data MySQL anda, melangkau medan id yang hilang dan bergantung pada ciri kenaikan automatik untuk menjana pengecam unik bagi setiap baris.
Atas ialah kandungan terperinci Bagaimana untuk Mengimport Fail XML ke MySQL dengan Lajur ID Hilang Menggunakan LOAD XML dan XML_LOAD()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!