如何准备和插入数据从一个文件到Mysql数据库?

hlswsv35  于 2022-12-26  发布在  Mysql
关注(0)|答案(2)|浏览(144)

我有这个数据在一个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上,这里都是开源的。

先谢谢你了。

m528fe3b

m528fe3b1#

使用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)。

f0ofjuux

f0ofjuux2#

你可以使用Navicat来做导入,免费版本就可以了。

相关问题