在這種情況下,您在嘗試使用下列命令將XML 檔案匯入MySQL 資料庫表時遇到錯誤載入XML 指令。出現此問題的原因是表中的欄位數量與 XML 檔案中的值不匹配,且表中多了一個自動遞增 id 欄位。
要解決此錯誤,您可以指定要使用 LOAD XML 語句明確匯入的欄位。以下 SQL 語句將完成此操作:
<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>
透過指定欄位名稱,您可以指示 MySQL 在匯入過程中跳過缺少的 id 欄位。 id 欄位將根據資料表的自動增量設定自動填入增量值。
列對映的替代方法
如果需要,您也可以使用XML_LOAD() 函數將 XML 資料匯入 MySQL。此函數提供了更大的靈活性並允許明確列映射:
<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>
在這種情況下,XML_LOAD() 函數解析XML 資料並根據INTO TABLE 子句中指定的列映射填充my_tablename 表.
透過使用這兩種方法中的任何一種,您都可以成功地將XML 資料匯入到MySQL 資料庫表中,跳過缺少的id欄位並依靠自動增量功能為每一行產生唯一識別碼。
以上是如何使用 LOAD XML 和 XML_LOAD() 將缺少 ID 列的 XML 檔案匯入 MySQL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!