使用XML文件在MySQL数据库的表中插入多行

时间:2012-04-03 05:15:43

标签: mysql xml bulkinsert

我在MySQL中是全新的,并尝试使用XMl文件在MySQL表中插入多行但不能这样做。 我的查询成功执行但在表中的列中插入null时。下面是查询和XML文件的代码。

set @xml := load_file('c:/xmldistributortransaction.xml');
insert into xmldistributortransaction     (DistributorId,ProductId,Remarks,Quantity,Price,DIscount,TaxName,Total,AddedDate) values (
        extractValue(@xml,'/resultset/row[1]/field[1]/text()'),
        extractValue(@xml,'/resultset/row[1]/field[2]/text()'),
  extractValue(@xml,'/resultset/row[1]/field[3]/text()'),
  extractValue(@xml,'/resultset/row[1]/field[4]/text()'),
        extractValue(@xml,'/resultset/row[1]/field[5]/text()'),
        extractValue(@xml,'/resultset/row[1]/field[6]/text()'),
        extractValue(@xml,'/resultset/row[1]/field[7]/text()'),
        extractValue(@xml,'/resultset/row[1]/field[8]/text()'),
        extractValue(@xml,'/resultset/row[1]/field[9]/text()'));

XML文件

<?xml version="1.0"?>
<resultset statement="select      DistributorId,ProductId,Remarks,Quantity,Price,DIscount,TaxName,Total,AddedDate from xmldistributortransaction">
<row>
<field name="DistributorId">2</field>
<field name="ProductId">20 </field>
<field name="Remarks">remarks for second</field>
<field name="Quantity" >300</field >
<field name="Price">30</field>
<field name="Discount">2 </field>
<field name="TaxName">VAT4</field>
<field name="Total">240</field>
<field name="AddedDate">2012-04-02</field>
</row>
</resultset>

1 个答案:

答案 0 :(得分:2)

您可以尝试LOAD XML(MySQL)命令。

在MySQL 5.5中添加了

LOAD XML语句语法。

例如 -

LOAD XML LOCAL INFILE 'xmldistributortransaction.xml'
  INTO TABLE xmldistributortransaction
  ROWS IDENTIFIED BY '<row>';