このシナリオでは、次を使用して XML ファイルを MySQL データベース テーブルにインポートしようとしているときにエラーが発生します。 LOAD XML コマンド。この問題は、テーブルに追加の自動インクリメント ID フィールドがあり、テーブル内のフィールド数と XML ファイル内の値が一致しないために発生します。
このエラーに対処するには、フィールドは 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>
フィールド名を指定することで、インポート プロセス中に欠落している ID フィールドをスキップするように MySQL に指示します。 ID フィールドには、テーブルの自動インクリメント設定に基づいて増分値が自動的に入力されます。
列マッピングによる代替方法
必要に応じて、 XML データを MySQL にインポートする XML_LOAD() 関数。この関数により柔軟性が向上し、明示的な列マッピングが可能になります。
<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 テーブルにデータを設定します。 .
これらの方法のいずれかを利用すると、欠落している ID フィールドをスキップし、自動インクリメント機能を利用して各行に一意の識別子を生成して、XML データを MySQL データベース テーブルに正常にインポートできます。
以上がLOAD XML と XML_LOAD() を使用して ID 列が欠落している XML ファイルを MySQL にインポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。