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

2024-03-24

我想要的是在 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)有很多列。有空(NULL) 列parent_id以及孩子们的身份证。

希望“短”行能够在缺失的子列中放置空值LOAD DATA.

INSERT .. SELECT ..得到parent and parent_detail进入Parents桌子。拉回ids from Parents into Staging.parent_id。有关这两个 SQL 的详细信息,请参见http://mysql.rjweb.org/doc.php/staging_table#normalization http://mysql.rjweb.org/doc.php/staging_table#normalization

现在对每个可能的“子”列集执行类似的操作:child1 and child1_detail(可能是 NULL 对)和当前的 NULLchild1_id。 child2* 等也是如此。请注意,填充时Children表,你已经有了parent_id可用的。

这是执行任务的全 SQL 方式。它只比编写 Perl/PHP/Java/VB/任何代码来完成任务稍微简单一些。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将制表符分隔的文件插入到mysql中并具有关系 的相关文章

  • ORDER BY id 或 date_created 显示最新结果?

    我有一个表 实际上有几个 我想首先从中获取最新条目的结果 这是我的ORDER BY条款选项 date created INT 从不改变值 id 当然是INT AUTO INCRMENT 两列应同等地代表记录插入的顺序 我自然会使用date
  • 子查询与连接

    我重构了从另一家公司继承的应用程序的一个缓慢部分 以使用内部联接而不是子查询 例如 WHERE id IN SELECT id FROM 重构后的查询运行速度提高了约 100 倍 50 秒到 0 3 我预计会有改进 但谁能解释为什么它如此剧
  • MySql JOINS 的优点/缺点

    当我从多个表中选择数据时 我经常使用 JOINS 最近我开始使用另一种方式 但我不确定从长远来看会产生什么影响 例子 SELECT FROM table 1 LEFT JOIN table 2 ON table 1 column table
  • 如何对主索引重新编号

    我有一个简单的 MySQL 表 主索引 id 不是一一编号的 1 31 35 100 等 我希望它们的编号如 1 2 3 4 请告诉我该怎么做 我还想指出的是 我知道该操作可能产生的后果 但我只是想整理一下表格 我同意其他方法也可以 但我只
  • 从数据库中给定时间起经过的时间

    我有一个 HTML 表 其中包含从数据库中提取的记录 我正在使用 PHP MySQL 我的表中名为 Timer 的列未从数据库中检索 我需要在此处显示经过的时间 从数据库中的特定时间开始 例如 假设现在的时间是2013年2月21日下午6点2
  • 有关 payment_status 的帮助 PayPal 已退款 已撤销 部分退款 ION

    如果会员订阅和 或支付一次付款并且他们请求退款 撤销或部分退款 下面的脚本是否可以与通过 IPN 发送的 IPN 消息一起使用 if payment status Refunded payment status Reversed payme
  • AttributeError:尝试在 python 中运行 sqlalchemy 来管理我的 SQL 数据库时,“Engine”对象没有属性“execute”

    我有以下代码行不断给我一个错误 即引擎对象没有对象执行 我认为我一切都对 但不知道接下来会发生什么 似乎其他人也遇到了这个问题 重新启动他们的笔记本电脑就可以了 我正在使用 Pycharm 并已重新启动但没有任何解决方案 任何帮助是极大的赞
  • 删除 mysql 数据库中超过 3 个月的行的作业

    我们使用 mysql 服务器作为集中式日志系统 我希望有一项工作来定期删除 清理超过 3 个月的表条目 做这个的最好方式是什么 提前致谢 hinling 您是否在字段中存储项目的创建日期 If so DELETE FROM myTable
  • 尝试通过比较不同的表从 SQL 查询输出正确的值

    我对 SQL 非常陌生 需要有关如何使用正确的查询完成此任务的帮助 我有 2 张桌子需要使用 表 TB1 有 id Name 1 bob 2 blow 3 joe 表 TB2 有 compid property 1 bob 2 blow 我
  • 列是存在的,但是当我尝试删除它时,它说 MYSQL 中没有列? **错误代码:1091。无法删除...**

    我尝试运行以下查询 ALTER TABLE ORDER DETAIL DROP foreign key USER ID It says Error Code 1091 Can t DROP USER ID check that column
  • Mac OS X Yosemite/El Capitan 上自动启动 MySQL 服务器

    我想在启动时自动启动 MySQL 服务器 这在小牛队是可能的 但在优胜美地似乎不起作用 edit 似乎这也适用于 El Capitan dcc 非常接近 这是 MySQL 在 Yosemite 上再次自动启动的方式 The com mysq
  • mysql 在 sum() 函数上使用 concat,例如 concat(sum(col1),"%")

    我正在尝试合并多个查询 但其中一个查询使用 sum 当我尝试在此列上应用 concat 时 我得到不需要的 blob 结果 我如何在聚合列上应用 concat 和 union 我期待这个结果 SELECT row 1 col1 UNION
  • MYSQL:SQL查询获取自增字段的值

    我有一张桌子 主键是id及其自动递增 现在 当我插入新记录时 我需要获取更新记录的 id 我怎样才能做到这一点 如果我使用查询 select max id from table name 执行后我可以获得id 但我能确定它是刚刚插入的记录的
  • MySQL 将 ÅäÖ 视为 AAO?

    这两个查询给了我完全相同的结果 select from topics where name Harligt select from topics where name H rligt 这怎么可能 看起来mysql在搜索时会将 翻译成aao
  • CakePHP - 获取上次运行的查询

    我想获取 CakePHP 运行的最后一个查询 我无法在 core php 中打开调试 也无法在本地运行代码 我需要一种方法来获取最后一个 sql 查询并将其记录到错误日志中而不影响实时站点 该查询失败但正在运行 像这样的事情会很棒 this
  • 在PHP中,如何在表格中显示数组内容

    如果我在 MySQL 客户端中进行选择 我将得到如下所示的输出 mysql gt select FROM group LIMIT 2 group id group supergroup id group deletable group la
  • 如何检查 $row['column_name'] 是否返回空 php mysql

    我有一个带有列的表格 id name phone describe 当我从这个表中获取值时 我正在使用 row mysql fetch array query 现在我想检查是否 row describe 返回空值 如何查看php 您可以使用
  • 日志中每天的每周活跃用户数

    我想知道是否有人可以帮助我使用一些 SQL 来返回两天或更长时间内登录到数据库表的唯一用户数量 让我们使用 7 天作为参考 我的日志表在每一行中包含时间戳 ts 和 user id 表示该用户当时的活动 以下查询返回此日志中的每日活跃用户数
  • 数据库级别的别名列名 [MySQL]

    别名 可能是错误的词 因为它是在将列 表名称作为查询中的其他名称引用的上下文中使用的 我感兴趣的是是否有一种方法可以在数据库中为列指定两个名称 如果我要打印这样的表格 它看起来会是这样的 mysql gt SELECT FROM User
  • 如何将“mysql source”命令与 mysql 变量一起使用?

    我需要从 mysql shell 执行一个基于如下条件的 SQL 文件 mysql gt 源 var 其中 var 包含文件名 这不可能 source是MySQL客户端程序在本地识别并执行的命令 变量存在于服务器上 因此客户端不知道什么 v

随机推荐

  • 具有数据成员语法的零成本属性

    我 重新 发明了这种使用数据成员语法实现零成本属性的方法 我的意思是用户可以写 some struct some member var var some struct some member 并且这些成员访问以零开销重定向到成员函数 虽然初
  • 对话框中标题分隔符的样式

    我想知道如何摆脱 或更改颜色 对话框中的标题分隔符 它是蜂窝设备上显示的对话框标题下方的一条蓝线 我猜这是 SDK 中的相关布局 但由于没有样式属性 我不知道如何设置它的样式 如果我尝试使用 findViewById 则没有 android
  • 使用 HTTPoison 初始化模块属性

    我正在尝试像这样初始化模块属性 response HTTPoison get url ok response Poison decode response body attr response 我以前用一个文件做过这样的事情 externa
  • 转换给定时区的日期/时间 - java

    我想将此 GMT 时间戳转换为 GMT 13 2011 10 06 03 35 05 我尝试了大约 100 种不同的 DateFormat TimeZone Date GregorianCalendar 等组合来尝试完成这个非常基本的任务
  • Android提供的onKey()、OnKeyDown()和dispatchKeyEvent()方法之间的区别?

    Android提供的onKey OnKeyDown 和dispatchKeyEvent 方法有什么区别 我想知道这些都可以在何时何地使用 请对此进行一些说明 追踪源代码5 1 视图类的源码 http grepcode com file re
  • EJB @Schedule 等待方法完成

    我想编写一个每分钟执行一次的后台作业 EJB 3 1 为此 我使用以下注释 Schedule minute 1 hour 工作正常 但是 有时该作业可能需要一分钟以上的时间 在这种情况下 计时器仍然会被触发 从而导致线程问题 如果当前执行未
  • 如何将非常大的 csv 文件导入到现有的 SQL Server 表中?

    我有一个非常大的 csv 文件 其中包含约 500 列 约 350k 行 我试图将其导入到现有的 SQL Server 表中 我努力了BULK INSERT 我得到 Query executed successfully 0 rows af
  • 使用 AWS Cloudformation 跨多个子网自动扩展会引发错误

    我无法创建 Cloudformation 模板来跨 2 个不同的公共子网自动缩放 我不断收到错误消息 创建失败AWS AutoScaling AutoScalingGroup指定子网的可用区和弹性伸缩 组不匹配 我广泛研究了所有不同的模板代
  • R 中的 diff() 函数有什么作用? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 为什么网络浏览器不支持 h2c(不带 TLS 的 HTTP/2)?

    我真的搜索了网络 但我找不到网络浏览器不支持 h2c 没有 TLS 的 http 2 的原因 任何想法 赞赏 稍微澄清一下 http 2 和 https 使用 ALPN 这称为 h2 http 2 与 http 不需要 ALPN 这称为 h
  • 如何隐藏或删除线系列 RadChart 中的零值

    我正在使用Radchart 我想删除显示零值的线系列 是否有任何可能的方法来隐藏或删除显示零的值 请提供任何解决方案或代码 提前致谢 经过两天的努力 我找到了如何隐藏或删除包含零的线系列的解决方案 我有四个线系列 其中第四线系列包含零的 i
  • NHibernate - 无需映射即可连接

    是否可以连接两个类而无需在它们之间指定映射 使用 Criteria API 我必须加入两个类并从两个类中检索数据 但我无法映射它们 我只知道外键SomeID在第一类和主键中ID在第二 如何创建加入他们的标准 不用映射可以吗 请帮助 我真的需
  • ReactDOM.findDOMNode() 现在已弃用,它的替代方案是什么?

    我有一个正在使用的旧代码findDOMNode 这是我的代码 其中someComponent1 and Expand已经导入了 在这里我对我编写的代码有些怀疑findDOMNode 工作得很好 但由于它现在已被弃用 我想将其删除 我浏览了很
  • 删除 React Native 中的多个组件

    我知道如何通过更改状态来添加和删除单个组件 但如果您有多个组件需要删除 这种方法就行不通了 例如 假设我有 3 个视图 当我点击它们时如何删除它们 示例代码 class Example extends Component render re
  • 移动浏览器将以及何时支持 getUserMedia?

    我使用 前沿 HTML5 WebRTC API 编写了一个 Web 应用程序 请参阅下面的代码 这适用于 Chrome v20 启用了 MediaStream 标志 和最新的 FF Nightly 版本 17 0a1 创建了 media n
  • 如何判断给定的 git 标签是带注释的还是轻量级的?

    I type git tag它列出了我当前的标签 1 2 3 1 2 4 我如何确定其中哪些是带注释的 哪些是轻量级的 git for each ref https git scm com docs git for each ref告诉你每
  • BinaryFormatter 序列化和反序列化线程安全吗?

    参考文献this https stackoverflow com questions 129389 how do you do a deep copy an object in net c specifically 129395 12939
  • 在不使用 jQuery 的情况下,如何使 Flexbox 网格/盒子/卡片的内部元素具有相同的高度?

    我使用 Flexbox 创建了一个网格 盒子 卡片布局 因此所有项目都具有相同的高度 该布局每行有 4 个框 这个特定的网格中只有内容 文本 所以我试图使所有标题标签的所有内部元素也具有相同的高度 但我没有这样做 我进行了大量研究并尝试了这
  • gnuplot 直方图上 Y 轴和条形之间的空间

    我有这样的 gnuplot 脚本 set term pos eps set style data histogram set style histogram clustered gap 1 set grid y set boxwidth 0
  • 如何将制表符分隔的文件插入到mysql中并具有关系

    我想要的是在 mysql 表中插入数据 但我无法找到从一行建立关系的方法 假设我有一个文件file tab它包含类似的数据 parent 1 parent details 1 child 1 1 child details 1 1 chil