问题标签 [gorp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
498 浏览

postgresql - Go 和 postgres 将整数重新解释为 nil 类型

我正在尝试获取一些旧代码来通过其单元测试。给我带来问题的测试在这里:

当我运行时go test,这会返回:

'sql: Scan error on column index 0: converting driver.Value type <nil> ("<nil>") to a int64: invalid syntax'

这很奇怪,因为我传递的是 1,一个整数。设备结构在这里定义:

这是它插入的 Postgres 表的架构:

我已经尝试使用该sql.NillInt64类型,但这似乎并不能解决问题。感觉好像 gorp、go 或 postgres 以某种方式将整数解释为 nil。作为最终数据点,这一切都在各种 Docker 容器中运行,尽管我认为这个问题与 Docker 无关。有什么见解吗?

0 投票
0 回答
68 浏览

postgresql - Postgresql 关闭语句需要很长时间

为了将数百万条记录添加到具有持续内存消耗的 Postgres 数据库中,我使用了一个线程池,其中包含多个工作人员以及一个gorp.Transaction.

每百万条记录,以下代码从不同的线程调用大约一百次,每次处理一批 10000 条左右的记录:

出于某种原因,我注意到这个过程往往很慢,Prepare并且Close调用时间很长。

然后,我尝试对所有调用重用相同的语句,batchCopy并在所有调用完成后关闭它。在这种情况下,batchCopy完成速度非常快,但是当我打电话时stmt.Close()- 它需要很长时间。


问题:

  • 声明的正确方法是什么?我应该每批创建一个还是重复使用它们?
  • 发生了什么事stmt.Close(),为什么在多次致电后需要这么长时间stmt.Exec
0 投票
1 回答
70 浏览

go - 在使用 go sql 时,在每种类型中重写 Scan 和 Value 方法时避免重复代码

Golan SQL plus Gorp 期望所有类型都包含附加到类型的 Scan 和 Value 方法,以便将 Rows 读取到结构中。这在我的项目中添加了很多样板代码,即使方法可以通用,因为我正在将 JSON 写入这些列。

有没有办法避免为我的每个结构定义所有相同的值和扫描方法?

该表应如下所示:

我尝试使用 @danicheeta 推荐的作文:

但是,如果我对数据库执行插入操作,结果是:

同样,如果我已经在数据库中“手动”插入了​​这个:

并尝试做一个select * from Type1我得到的:

0 投票
1 回答
104 浏览

go - 如何从另一个函数调用 dbmap.Insert(interface{})?

我有一堆非常相似的结构(示例中的 A 和 B),我想在某些函数(f()示例中)中处理它们的实例,然后将它们插入到我的数据库中。我想我可以以某种方式用空界面处理这个问题,但似乎这不是解决方案,因为我得到了错误:

我试图创建一些最小但可执行的示例:

这样做的正确方法是什么?在 C++ 中,我会简单地使用模板;)

0 投票
1 回答
96 浏览

go - Go Scanner 仍然返回

首先:我是golang的新手,所以我可能不太了解。我的任务是使用“gorp”从一个数据库中编写一个 Go 数据提取器。问题在于一张具有自定义字段“TimeRange”的表。它被定义为:

可悲的是,当我尝试获取行时,我遇到了扫描仪错误,所以我意识到我需要一个自定义扫描仪。

所以我希望在返回的字符串中看到固定的“{mis lala}”。为什么我得到:

印刷:

即:TimeRange、UserName 和 UUID

可能很重要:使用“gorp”进行数据库管理

0 投票
1 回答
693 浏览

postgresql - 如何插入切片

我有一个 postgres 数据库,我想为它生成表并使用 Gorp 写入,但是当我尝试插入时收到一条错误消息,因为我的结构中包含切片“sql:转换参数 $4 类型:不支持的类型 [] core.EmbeddedStruct,结构切片。

我的结构如下所示:

有没有人有任何经验/或知道 Gorp 是否支持插入切片?从我读过的内容来看,它似乎只支持 SELECT 语句的切片

0 投票
0 回答
144 浏览

database - 添加结构数据中断调用

我正在使用 gorp 和 *DBMap.addTableWithName() 函数来创建表。

如果我有以下情况:

哪个按预期工作。

如果我将结构修改为此

然后表没有用新的结构结构修改。

如果我手动修改数据库

ALTER TABLE s1Table ADD COLUMN extra text;

然后运行我回来的任何查询 sql: Scan error on column index 3, name "extra": converting NULL to string is unsupported

我浏览了 GoDocs 中的 gorp,但没有什么可以作为解决方案。

我的问题是 - gorp 是否可以管理这些表更改?如果不是,那么如何才能不导致converting NULL to string is unsupported错误。

0 投票
0 回答
66 浏览

go - 由 Exec 使用 gorp 更新

我与 gorp 合作,我使用 Exec 来更新和插入。

第一次运行:row = 0 => 插入

第二次运行:模型不更改行 = 0 => 插入

如何用第二次运行的数据替换第一次运行的数据?

0 投票
0 回答
65 浏览

mysql - MySQL查询返回空结果

我有一个简单的语句,它通过调用表SELECT中的所有列。couponwho_added

代码:

优惠券型号:

结果: 正如您在此处看到的,即使我的表有数据,它也是空的。

邮差

问题:我表上的数据未显示在结果中。

我试图在 MySQL 工作台上查询相同的语句,它工作得很好。

我哪里做错了?