如何将制表符分隔的文件插入到带有关系的mysql中

使用者97798

我想要的是在mysql表中插入数据,但是我找不到从一行建立关系的方法

假设我有一个文件file.tab,其中包含类似的数据

parent_1    parent_details_1    child_1.1   child_details_1.1   child_1.2   child_details_1.2
parent_2    parent_details_2    child_2.1   child_details_2.1
parent_3    parent_details_3    child_3.1   child_details_3.1   child_3.2   child_details_3.2   child_3.3   child_details_3.3

我要达到的目标是在两个表中插入数据

            parent_table
+---+-----------+-------------------+
|id |   name    |      details      |
+---+-----------+-------------------+
| 1 |  parent_1 |  parent_details_1 |
| 2 |  parent_2 |  parent_details_2 |
| 3 |  parent_3 |  parent_details_3 |
+---+-----------+-------------------+


              child_table
+---+-----+-----------+-------------------+
|id | pid |   name    |      details      |
+---+-----+-----------+-------------------+
| 1 |  1  | child_1.1 | child_details_1.1 |
| 2 |  1  | child_1.2 | child_details_1.2 |
| 3 |  2  | child_2.1 | child_details_2.1 |
| 4 |  3  | child_3.1 | child_details_3.1 |
| 5 |  3  | child_3.2 | child_details_3.2 |
| 6 |  3  | child_3.3 | child_details_3.3 |
+---+-----+-----------+-------------------+

前两列是父母的,其后两列是孩子的,但我不知道父母有多少孩子。

我试图以这种方式加载文件。

LOAD DATA INFILE '/tmp/file.tab INTO TABLE ... 

但是接下来我该怎么办呢。

请在这个问题上帮助我。

里克·詹姆斯

创建一个Staging包含许多列的表()。子项的ID为空(NULL)列parent_id

希望“短”行将在期间将缺失的子项列中包含空值LOAD DATA

INSERT .. SELECT ..获得parentparent_detailParents表。拉回idsParentsStaging.parent_id有关这两个SQL的详细信息,请参见http://mysql.rjweb.org/doc.php/staging_table#normalization

现在,对每个可能的“子”列集执行类似的操作:child1child1_detail(可能为NULL对)和当前的NULL child1_idchild2 *的同上,等等。请注意,在填充Children表时,您已经可以parent_id使用。

这是完成任务的全SQL方法。它只比编写Perl / PHP / Java / VB /执行任何任务的代码少一点混乱。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将多列制表符分隔的文本文件导入到单列PostgreSQL表中?

如何将具有多个空格的文件转换为制表符分隔的文件?

如何在Linux中的带有标题的制表符分隔文件中添加行名

如何将带有制表符的输出终端写入shell中的文件?

如何将空格分隔的文件转换为制表符分隔的文件?

如何将常量添加到制表符分隔的文本 linux 文件中的特定列

Microsoft Word 2013公式编辑器:如何将制表符插入到公式中?

如何将xlsx转换为制表符分隔的文件

Excel中带有制表符分隔的文本文件的多个工作表?

将粘贴制表符分隔的结果复制到excel文件中

如何将制表符分隔的值正确拆分为ORACLE中的各个列

如何在Spark中处理制表符分隔的文件?

如何合并制表符分隔的文件?

使用Sed插入带有制表符分隔符的文本行

如何将制表符值复制到VBA中的单元格

如何将制表符转换为目录的每个文件中的空格?

如何将制表符分隔的数据转换为逗号分隔的数据?

如何将制表符分隔格式的文本文件的内容显示为 html 表格

如何将保存在谷歌驱动器上的制表符分隔 (TSV) 文件导入谷歌表格

如何将带有分隔符的文件行中的单词存储到结构中

您如何阅读带有制表符分隔项目的.txt,这些项目位于列表的一行中?

将制表符分隔文件中的逗号分隔列表扩展为单独的行

Bash创建带有特定列名的制表符分隔文件

Solr:导入带有多行字段的制表符分隔文件

有关CSV文件上的utf-8-sig编码和制表符分隔符的问题

在制表符分隔的文件Python中的替换字符串中替换制表符

如何将制表符分隔的行读取为变量

如何将文本解析为制表符分隔的列?

将标题添加到制表符分隔的文件