このシナリオでは、次を使用して XML ファイルを MySQL データベース テーブルにインポートしようとしているときにエラーが発生します。 LOAD XML コマンド。この問題は、テーブルに追加の自動インクリメント ID フィールドがあり、テーブル内のフィールド数と XML ファイル内の値が一致しないために発生します。
このエラーに対処するには、フィールドは LOAD XML ステートメントを使用して明示的にインポートされます。次の SQL ステートメントでこれを実現します:
LOAD XML LOCAL INFILE '/pathtofile/file.xml'
INTO TABLE my_tablename(personal_number, firstname, lastname, email, start_time, end_time, employee_category);
フィールド名を指定することで、インポート プロセス中に欠落している ID フィールドをスキップするように MySQL に指示します。 ID フィールドには、テーブルの自動インクリメント設定に基づいて増分値が自動的に入力されます。
列マッピングを使用した代替方法
必要に応じて、 XML データを MySQL にインポートする XML_LOAD() 関数。この関数は柔軟性を高め、明示的な列マッピングを可能にします。
SET @xmlData = XML('... ');
SELECT XML_LOAD(@xmlData, '/resultset/row',
'(personal_number, firstname, lastname, email, start_time, end_time, employee_category)'
INTO TABLE my_tablename);
この場合、XML_LOAD() 関数は XML データを解析し、INTO TABLE 句で指定された列マッピングに基づいて my_tablename テーブルにデータを設定します。
次のいずれかを利用します。これらの方法を使用すると、欠落している ID フィールドをスキップし、自動インクリメント機能を利用して各行に一意の識別子を生成して、XML データを MySQL データベース テーブルに正常にインポートできます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3