为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用XML_LOAD()将XML文件导入MySQL数据库表;功能

如何使用XML_LOAD()将XML文件导入MySQL数据库表;功能

猛跑小猪 2019-12-27 15:23:38
我有一个看起来像这样的XML文件:    <?xml version="1.0" encoding="UTF-8"?><resultset statement="YOUR SQL STATEMENTS TO GENERATE THIS XML FILE" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">  <row>    <field name="personal_number">539</field>    <field name="firstname">Name</field>    <field name="lastname">Surname</field>    <field name="email">email.domain.com</field>    <field name="start_time">2011-04-02 13:30:00</field>    <field name="end_time">2011-04-02 18:15:00</field>    <field name="employee_category">1,2,4,5,22,37,38,39,41,43,44</field>  </row>  <row>    <field name="personal_number">539</field>    <field name="firstname">Name</field>    <field name="lastname">Surname</field>    <field name="email">email.domain.com</field>    <field name="start_time">2011-04-02 13:30:00</field>    <field name="end_time">2011-04-02 18:15:00</field>    <field name="employee_category">1,2,4,5,22,37,38,39,41,43,44</field>  </row>  <row>    <field name="personal_number">539</field>    <field name="firstname">Name</field>    <field name="lastname">Surname</field>    <field name="email">email.domain.com</field>    <field name="start_time">2011-04-02 13:30:00</field>    <field name="end_time">2011-04-02 18:15:00</field>    <field name="employee_category">1,2,4,5,22,37,38,39,41,43,44</field>  </row>我试图使用SQL语句将其导入MySQL:use databasename;LOAD XML LOCAL INFILE '/pathtofile/file.xml' INTO TABLE my_tablename;表my_tablename具有以下字段:id (auto increment id)personal_number(varchar)firstname(varchar) lastname(varchar)email(varchar) start_time(varchar)end_time(varchar)employee_category(varchar)我收到错误消息:错误代码:1136列数与第1行的值数不匹配我正在使用MySQL 5.1.56我认为发生此错误是因为数据库表具有字段ID,该字段ID在XML文件中不存在。如何使用内置函数的MySQL查询来导入此XML文件,以使其在导入过程中跳过id列并依赖id列的自动递增功能?是否有一些更聪明的方法来处理MySQL中的XML文件导入?也许有更好的语句可以指定列映射?
查看完整描述

2 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

您可以指定如下字段:


LOAD XML LOCAL INFILE '/pathtofile/file.xml' 

INTO TABLE my_tablename(personal_number, firstname, ...); 


查看完整回答
反对 回复 2019-12-27
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

由于ID是自动递增的,因此您还可以将ID = NULL指定为

LOAD XML LOCAL INFILE'/pathtofile/file.xml'INTO TABLE my_tablename SET ID = NULL;


查看完整回答
反对 回复 2019-12-27
  • 2 回答
  • 0 关注
  • 678 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信