使用另一个表中的值将xml加载到mysql中

时间:2013-04-25 14:09:12

标签: mysql xml

我有一个mysql数据库,我想用xml数据填充,但我希望这些信息根据另一个表中的值进行更改。

xml文件如下所示:

D<DATAROW num="1">
<FILM_DATE>20/04/2013</FILM_DATE> 
<FILM_NAME>DAYS OF THUNDER</FILM_NAME> 
<FILM_REVENUE>100</ FILM_REVENUE >
D<DATAROW num="2">
<FILM_DATE>21/04/2013</FILM_DATE> 
<FILM_NAME>TOP GUN</FILM_NAME> 
<FILM_REVENUE>120</ FILM_REVENUE > 
D<DATAROW num="3">
<FILM_DATE>20/04/2013</FILM_DATE> 
<FILM_NAME> MISSION IMPOSSIBLE </FILM_NAME> 
<FILM_REVENUE>100</ FILM_REVENUE >

例如,我想将带有电影标题和日期的xml文件加载到电影详细信息表

Load XML Local Infile ‘C:\film_details.xml
Into table film details

我不想将电影名称加载到Film Details表中,而是使用另一个名为Film Titles的表中的id

+----+--------------------+
| ID |     Film Name      |
+----+--------------------+
|  1 | Vanilla Sky        |
|  2 | Days of Thunder    |
|  3 | Top Gun            |
|  4 | Mission Impossible |
+----+--------------------+

我希望Film Details表看起来如下

+------------+-----------+---------+
|    Date    | Film Name | Revenue |
+------------+-----------+---------+
| 20/04/2013 |         2 |     100 |
| 21/04/2013 |         3 |     120 |
| 20/04/2013 |         4 |     100 |
+------------+-----------+---------+

请注意,表格细节中的电影名称栏与XML中的不同(缺少“_”)

有没有办法在将xml数据插入mysql数据库之前对其进行操作?

1 个答案:

答案 0 :(得分:0)

如果您首先将XML文件加载到临时表中,那将是一个好主意。之后,一个简单的查询应该足以从参考表中获取代码。

这样您就可以解决两个问题。外键和不同的字段名称。