【发布时间】:2015-03-06 07:32:11
【问题描述】:
使用 golang 的 pq sql 驱动程序,我正在按照in the pq docs 的描述进行批量导入。有没有办法获取创建记录的 ID?
【问题讨论】:
-
底层 PostgreSQL
COPY命令不提供为生成的列返回结果集的方法。所以不,没有,除了查询表以匹配插入的数据并查找任何生成的键。 -
@CraigRinger 是的,但是从 Postgres 的角度来看是可能的(使用
INSERT INTO ... RETURNING id),我认为应该有一种方法可以通过pq包实现这一点。 -
是的,有...使用
INSERT INTO ... RETURNING,可能带有多条目VALUES列表。COPY没有等效项,这是pq包的批量加载方法的文档建议它使用的。我猜你必须为pq编写另一个批量加载变体函数,它使用批处理INSERT INTO ... VALUES (...), (...), (...), ... RETURNING ...查询来代替。或者实现COPY ... RETURNING ...:p
标签: sql postgresql go