MySQL LOAD XML LOCAL INFILE 插入0行。

问题描述 投票:0回答:1

我知道这个问题在过去已经有好几种变化,我也搜索过,但我还是遇到了一个问题。可能是我只是简单地忽略了这个问题。

我有一个webapp,当有人删除记录时,会将记录保存到xml文件中。它使用mysqldump来创建xml记录。 我需要把一个被删除的记录导入回来,我使用了这个方法。

mysql> LOAD XML LOCAL INFILE "c:\loadthis.xml" into table mytable;I get:Query OK, 0 rows affected (0.00)Records: 0 Deleted: 0 跳过:0 警告:0

有什么想法,我可能做错了什么?我验证了ID在表中不存在。

这是xml文件的样子(为了安全起见,我删除了很多列)。 表有159列,xml文件与表的关联正确。

<?xml version="1.0"?>

<SQL stmt="select * from mytable where ID=107336">
    <row>
        <ID DATATYPE="INT UNSIGNED" DATAWIDTH="10" NULL="NOTNULL">107336</ID>
        <CREATEDBY DATATYPE="VARCHAR" DATAWIDTH="75" NULL="NOTNULL">rg</CREATEDBY>
        <CREATEDATE DATATYPE="DATETIME" DATAWIDTH="19" NULL="NOTNULL">2019-11-05 11:17:21.0</CREATEDATE>
        <MODIFIEDBY DATATYPE="VARCHAR" DATAWIDTH="75" NULL="NOTNULL">jl</MODIFIEDBY>
        <MODIFIEDDATE DATATYPE="DATETIME" DATAWIDTH="19" NULL="NOTNULL">2019-11-06 12:23:22.0</MODIFIEDDATE>
        <OWNER DATATYPE="VARCHAR" DATAWIDTH="75" NULL="NULL">rg</OWNER>
        <DELETED DATATYPE="VARCHAR" DATAWIDTH="15" NULL="NULL"></DELETED>
        <FIRSTNAME DATATYPE="VARCHAR" DATAWIDTH="200" NULL="NULL">John</FIRSTNAME>
        <LASTNAME DATATYPE="VARCHAR" DATAWIDTH="200" NULL="NULL">Smith</LASTNAME>
</row>
</SQL>
mysql xml load
1个回答
0
投票

好吧,问题是文件中的一个数据字段有一个&,无法加载。不知道为什么会有这个问题。 我只是从xml文件中删除了这个字符,加载文件后再把插入的字符加回来。

© www.soinside.com 2019 - 2024. All rights reserved.