我有一个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和所有的opensource上。
提前多谢了。

最佳答案

如果可能的话,可以使用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)。

10-08 08:16
查看更多