我知道这个问题在过去已经有好几种变化,我也搜索过,但我还是遇到了一个问题。可能是我只是简单地忽略了这个问题。
我有一个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>
好吧,问题是文件中的一个数据字段有一个&,无法加载。不知道为什么会有这个问题。 我只是从xml文件中删除了这个字符,加载文件后再把插入的字符加回来。