mysql - 如何准备文件中的数据并将其插入到 Mysql DB 中?

标签 mysql database bulkinsert

我将此数据保存在 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,并且这里都是开源的。

提前非常感谢。

最佳答案

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

关于mysql - 如何准备文件中的数据并将其插入到 Mysql DB 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6056639/

相关文章:

MySQL批量插入忽略

Grails 批量插入/更新优化

mysql - CodeIgniter数据库错误覆盖

php - 有人可以告诉我为什么我的 $.ajax 调用没有从我的 PHP 页面返回数组吗?

php - 如何根据年份动态回显月份

java - 每次将软件分发给新用户时都手动为软件创建新数据库?

mysql - wp_postmeta 和 wp_woocommerce_order_itemmeta 表之间的区别

MySQL 排序 varchar 列数字,数字在前

Java + Tomcat,垂死的数据库连接?

c - SQL Server & ODBC 与 C 语言