使用 golang 从 csv 批量插入 postgres,而不使用 for 循环

2023-12-12

我是 Golang 的新人,

  • 我有 csv 文件,其数据如下所示
field1,field2
1.1,2
1.2,3
1.3,2
  • 我想使用 golang 将所有 csv 数据插入到 db 表中,而不使用 for 循环..我正在使用 postgres 数据库

也不想使用sql原始查询

我正在使用 Gorm ORM


您可以使用pgx库:

    filename := "foo.csv"
    dbconn, err := pgx.Connect(context.Background(), os.Getenv("DATABASE_URL"))
    if err != nil {
        panic(err)
    }
    defer dbconn.Release()
    f, err := os.Open(filename)
    if err != nil {
        panic(err)
    }
    defer func() { _ = f.Close() }()
    res, err := dbconn.Conn().PgConn().CopyFrom(context.Background(), f, "COPY csv_test FROM STDIN (FORMAT csv)")
    if err != nil {
        panic(err)
    }
    fmt.Print(res.RowsAffected())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 golang 从 csv 批量插入 postgres,而不使用 for 循环 的相关文章

  • 在 SQL 数据库中存储自定义字段的首选方式是什么?

    我的朋友正在开发一款供不同独立医疗单位使用的产品 该数据库存储了在不同时间进行的大量测量数据 例如体温 血压等 让我们假设它们保存在一个名为的表中exams有柱子temperature pressure等 以及id patient id a
  • 在哪里可以找到 neo4j 快速教程? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何从动态查询中插入具有多列的表?

    如同上一个问题 https stackoverflow com questions 34194889 how to insert into table from dynamic query对于一对一映射 我需要一个针对源和目标中的多个列的解
  • 按钮 Onclick 调用 Javascript,后者调用 PHP 文件,该文件添加到 Mysql 数据库

    我需要添加到数据库的帮助 我想从按钮单击方法调用 javascript scrt Javascript 脚本 我想调用一个 php 文件 其中包含一些添加到 MySQL 数据库的代码 我确实尝试了 20 多个网站 但没有任何帮助 如果 AJ
  • 使用 VS 2010 数据库管理示例数据

    我正在使用 Visual Studio 2010 中的数据库项目来管理我的所有数据库代码 对于我的应用程序 我们将每个客户端的数据分离到他们自己的数据库副本中 并使用通用数据库将用户映射到适当的数据库 我希望在 TFS 中保留几个不同的示例
  • 如何最大限度地减少 Go 中的垃圾收集?

    有时您可能想避免 最小化垃圾收集器 所以我想确定如何做到这一点 我认为下一个是正确的 在函数的开头声明变量 使用数组代替切片 还有吗 为了最大限度地减少 Go 中的垃圾收集 您必须最大限度地减少堆分配 为了最大限度地减少堆分配 您必须了解分
  • 如何让MySQL数据库完全在内存中运行?

    我注意到我的数据库服务器支持内存数据库引擎 我想让一个已经运行 InnoDB 的数据库完全在内存中运行以提高性能 我怎么做 我探索了 PHPMyAdmin 但找不到 更改引擎 功能 假设您了解注释中提到的使用 MEMORY 引擎的后果 并且
  • php 中每个数据库扩展的字符串如何转义?

    在任何人对这个问题的性质做出结论之前 我已经知道了参数化 准备好的语句 http en wikipedia org wiki Prepared statements Parameterized statements并尽可能使用它们 不幸的是
  • pgadmin:收到“详细信息:用户没有 CONNECT 权限。”错误

    我在 Mac Yosemite 上使用 pgAdmin III 我创建了一个角色 discount 和一个数据库 discount 在 pgadmin 工具中 如何授予用户 discount 对数据库 discount 的连接权限 以及表读
  • 当 SQL 包含变量时在 pgAdmin 中调试 SQL

    在 SQL Server 中 我可以从应用程序中复制 sql 代码并将其粘贴到 SSMS 中 声明并分配 sql 中存在的变量并运行 是的 很棒的调试场景 例如 请注意 我很生疏 语法可能不正确 declare x as varchar 1
  • 使用指针接收器调用函数的 Go 语法

    在Go中 如果我定义一个带有指针的函数作为接收者 它是否应该只允许从指针调用该函数 为什么从值本身调用这个函数就可以 并且有同样的效果 例如 在以下程序中 m1 reset 和 m2 reset 具有相同的效果 即使 m1 是一个值而 m2
  • go install - 我需要手动更新我的路径吗?

    我对 Go 的最新最佳实践是什么有点困惑 在 macos 上安装最新的 1 17 Go 没有 GOPATH 环境变量 使用 go mod 我看到我的路径中有以下内容 usr local go bin 当我跑步时go install
  • 有效存储和查询 GPS 坐标

    我想创建一个大型 GPS 坐标数据库 可以通过 返回 此坐标 n 米范围内的所有坐标 来查询该数据库 我需要它尽可能高效 因此循环遍历数据库中的所有坐标并计算坐标是否在 n 米内并不是理想的解决方案 有更简单的解决方案吗 Thanks 我通
  • 在数据库中有效存储商品位置(用于订购)

    设想 有一个用户拥有的电影数据库 电影显示在一个名为 我的电影 的页面上 电影可以按照用户想要的顺序显示 例如 位置 1 为 搏击俱乐部 位置 3 为 Drive 依此类推 显而易见的解决方案是存储每个项目的位置 例如 电影 ID 用户 I
  • Golang 处理数据库连接的“最佳实践”

    我有一个用 Go 编写的 Web 服务 目前我有一个全局包 我可以在任何地方导入它 其中包含与 MongoDB 的连接 通过 MGO 但我不得不说 这对我来说感觉非常恶心 在 Go 中维护与数据源的连接的最佳实践是什么 我来自 PHP 世界
  • 基准测试:PostgreSQL 上的 bigint 与 int

    我想提高数据库性能 在一个项目中 所有表都来自int to bigint 我认为这不仅在存储方面是一个糟糕的选择 因为int需要4 bytes and bigint需要8 bytes 但也与性能有关 所以我创建了一个小表1000万条目 其中
  • 保存用户的身高和体重

    我应该如何将用户的身高和体重存储在MySQL数据库中 以便我可以使用这些信息来查找特定身高或体重内的用户 另外 我需要能够以英制或公制显示此信息 我的想法是存储以厘米为单位的身高和以公斤为单位的体重信息 我更喜欢公制而不是英制 我什至可以让
  • 如何让MySQL数据库完全在内存中运行?

    我注意到我的数据库服务器支持内存数据库引擎 我想让一个已经运行 InnoDB 的数据库完全在内存中运行以提高性能 我怎么做 我探索了 PHPMyAdmin 但找不到 更改引擎 功能 假设您了解注释中提到的使用 MEMORY 引擎的后果 并且
  • 如何从 gorm 中的模型获取表名?

    是否可以获得模型的表名 我发现可以从模型结构但我不知道如何正确地做到这一点 我没有找到该结构的任何初始化 user User tableName db 对于 Gorm v2 根据https github com go gorm gorm i
  • 使用 Sequelize.js 和 PostgreSQL 查询关联模型上的 JSONB 字段

    我有我的两个模型Foo and Bar Foo有一个字段barId 因此有一个Bar与其关联的对象 我可以查询我所有的Foo对象并包括它们的关联Bar对象如此 我正在使用 TypeScript续集打字稿 https github com R

随机推荐