我有一个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>

我正在try 使用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)

我得到一个错误:

我使用的是MySQL 5.1.56

我假设发生此错误是因为数据库表具有字段id,而该字段id在XML文件中不存在.如何使用内置函数的MySQL查询导入此XML文件,从而在导入过程中跳过id列,并依赖id列的自动增量函数?

非常感谢.

推荐答案

可以指定如下字段:

LOAD XML LOCAL INFILE '/pathtofile/file.xml' 
INTO TABLE my_tablename(personal_number, firstname, ...); 

Mysql相关问答推荐

MySQL UPDATE 锁会因为连续的 SHARE 锁而饿死吗?

在 MySQL 中转换 JSON 数组值

通过 Gorm 查询模型

为什么从我的 SQL 查询中删除 BINARY 函数调用会如此显着地改变查询计划?

SQL 查找边界之间的值

mysql - 如何加入表中的动态列

FreeBASIC 中的 MySQL 访问读取

如何在 SQL 中的一行中查找最小值和最大值?

无法在两个 mysql 表上执行内部联接

#1030 - 从存储引擎 Aria 收到错误 176“读取错误校验和的页面”

Laravel mysql迁移错误

MySQL 8.0 - 客户端不支持服务器请求的认证协议;考虑升级 MySQL 客户端

Mysql 错误:try 转储表空间时,指定为定义者的用户 ('mysql.infoschema'@'localhost') 不存在'

表 'DBNAME.hibernate_sequence' 不存在

不支持扫描,将 driver.Value 类型 []uint8 存储到 *time.Time 类型中

如何找到 MySQL 进程列表并杀死这些进程?

docker-entrypoint-initdb 中的 MySQL 脚本未执行

php artisan migrate throwing [PDO Exception] 找不到驱动程序 - 使用 Laravel

UTF-8 字符有问题;我看到的不是我存储的

从 MySQL JSON 数据类型中提取不带引号的值