我在XLS文件上有这些数据。 XLS文件包含了大量我不需要的数据。我会清理文件,我可以重新安排它。
我有这样的事情:
Level - Code - Description
1 A 'foo foo'
2 12331 'bar bar'
3 13123 'bla bla'
4 21321 'plim bar'
5 12111 'foo plim'
5 12111 'plim bla'
5 12111 'bla plim'
1 B 'bla bar'
n ... ...
级别定义层次结构位置,例如1是顶级层次结构。 5是最低的。
我将使用邻接列表模型来存储此信息。 所以我相信我必须像这样存储它:
id - description - parent_id
1 'foo foo' NULL
2 'bar bar' 1
3 'bla bla' 2
4 'plim bar' 3
5 'foo plim' 4
6 'plim bla' 4
7 'bla plim' 4
8 'bla bar' NULL
n ... ...
插入此类信息的最佳(最快,最简单)方法是什么? 我应该转换为CSV吗?我应该如何格式化XLS文件,以便通过维护层次结构来插入此信息?
XLS文件中有9000行,我希望避免一个一行!
我们应该考虑哪些方法才能成功导入这些数据?
更新 我有这个mysqlworkbench软件......我在Ubuntu上,所有的开源都在这里。
提前多多感谢。
答案 0 :(得分:2)
如果可能的话,使用LOAD
命令和类似csv的数据。
以下是一个例子:
LOAD DATA INFILE 'path-to-your-data-file'
INTO TABLE <your-table>
CHARACTER SET latin1
FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(col1, col2,..., coln)
;
其中IGNORE 1 LINES
表示数据文件中的列标题将被忽略,(col1, col2,..., coln)
是要使用的数据库列。
您可以使用许多其他选项(请参阅http://dev.mysql.com/doc/refman/5.1/en/load-data.html),对于大型数据加载,LOAD
的速度比INSERT
快20倍(根据http://dev.mysql.com/doc/refman/5.1/en/insert-speed.html })。
答案 1 :(得分:1)
您可以使用navicat进行导入,免费版本也可以。