我没有收到错误,但我收到了不良后果,并且不确定处理它的最佳方法。我有一个带有列表属性<tags>
的xml文件,当我暂存时,我希望每个标记都是一行,这样可以更容易地插入到最终的3表中,其中帖子和标签具有NN关系和所有标签是独一无二的。
这是我运行的命令,它会创建所需数量的记录。
LOAD XML INFILE 'myfile.xml' INTO TABLE stage ROWS IDENTIFIED BY '<tag>';
Query OK, 11 rows affected (0.02 sec)
Records: 11 Deleted: 0 Skipped: 0 Warnings: 0
然而,当我运行select * from stage
时,我得到以下结果集,这基本上是无用的。
username|real_name|post_date|profile_url|is_mod|allow_pm|followers|message|tag
RickDude|NULL |NULL |NULL |NULL |NULL |NULL |NULL |#cool
RickDude|NULL |NULL |NULL |NULL |NULL |NULL |NULL |#awesome
RickDude|NULL |NULL |NULL |NULL |NULL |NULL |NULL |#money
非常感谢任何帮助。
sql table create script
CREATE TABLE stage(
username NVARCHAR(255) NOT NULL,
real_name NVARCHAR(255) NULL,
post_date VARCHAR(50) NULL,
profile_url NVARCHAR(255) NULL,
is_mod VARCHAR(5) NULL,
allow_pm VARCHAR(5) NULL,
followers VARCHAR(11) NULL,
message NVARCHAR(1000) NULL,
tag NVARCHAR(255) NULL
);
xml文件
<posts>
<post>
<username>RickDude</username>
<tags>
<tag>#cool</tag>
<tag>#awesome</tag>
<tag>#money</tag>
</tags>
<real_name>Richard Sanchez</real_name>
<post_date>Aug. 8, 2015</post_date>
<profile_url>https://example.com/profiles/RickDude</profile_url>
<is_mod>True</is_mod>
<allow_pm>True</allow_pm>
<followers>1000001</followers>
<message>The message text here...</message>
</post>
<post>
<username>Smorty</username>
<tags>
<tag>#noob</tag>
<tag>#awesome</tag>
</tags>
<real_name>Morty Smith</real_name>
<post_date>Apr. 1, 2017</post_date>
<profile_url>https://example.com/profiles/Smorty</profile_url>
<is_mod>True</is_mod>
<followers>537</followers>
<allow_pm>True</allow_pm>
<message>The message text here...</message>
</post>
<post>
<username>TheRealJerry</username>
<allow_pm>True</allow_pm>
<tags>
<tag>#colorwheel</tag>
<tag>#weird</tag>
<tag>#huh</tag>
<tag>#yumadbro</tag>
<tag>#firstpost</tag>
<tag>#plutoisaplanet</tag>
</tags>
<real_name>Jerry Smith</real_name>
<post_date>May. 18, 2017</post_date>
<profile_url>https://example.com/profiles/TheRealJerry</profile_url>
<is_mod>False</is_mod>
<followers>3</followers>
<message>The message text here...</message>
</post>
</posts>