我打算使用LOAD XML INFILE函数将xml文件加载到我的数据库中。它有效,但我遇到了这种类型的xml的问题:
<response>
<point id="DP_032113" name="data1" value="18.0"/>
<point id="DP_042113" name="data2" value="190"/>
<point id="DP_032753" name="data1" value="14.0"/>
</response>
如果我添加:
ROWS IDENTIFIED BY '<point>'
我得到了结果:子查询返回多行。
如果我不添加此行,我会得到以下结果:0行受影响。
我明白该行&#34; ROWS IDENTIFIED BY&#34;在这种情况下,我不能很好地工作,但我无法更改xml格式的答案,因为它来自Web服务器:/。
您是否知道如何在我的数据库中加载此xml文件?
答案 0 :(得分:0)
尝试:
档案:'/path/to/file/point.xml'
:
<response>
<point id="DP_032113" name="data1" value="18.0"/>
<point id="DP_042113" name="data2" value="190"/>
<point id="DP_032753" name="data1" value="14.0"/>
</response>
MySQL命令行:
mysql> DROP TABLE IF EXISTS `point`;
Query OK, 0 rows affected (0.01 sec)
mysql> CREATE TABLE `point` (
-> `id` VARCHAR(9) NOT NULL PRIMARY KEY,
-> `name` TEXT,
-> `value` DECIMAL(7, 2)
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> LOAD XML LOCAL INFILE '/path/to/file/point.xml'
-> INTO TABLE `point`
-> ROWS IDENTIFIED BY '<point>';
Query OK, 3 rows affected (0.00 sec)
Records: 3 Deleted: 0 Skipped: 0 Warnings: 0
mysql> SELECT
-> `id`,
-> `name`,
-> `value`
-> FROM
-> `point`;
+-----------+-------+--------+
| id | name | value |
+-----------+-------+--------+
| DP_032113 | data1 | 18.00 |
| DP_032753 | data1 | 14.00 |
| DP_042113 | data2 | 190.00 |
+-----------+-------+--------+
3 rows in set (0.00 sec)