pgAdmin表示受影响的n条记录,输出显示受影响的n * x条记录

时间:2018-02-27 19:22:03

标签: postgresql postgresql-9.6 pgadmin-4

我正在使用pgAdmin 4v2.1,postgresql 9.6,在本地运行。

直到昨天,我才注意到pgAdmin中的查询问题,直到昨天,我添加了对row_number的调用,以创建一个插入脚本(详情如下),其主键值基于行号。

运行之后,似乎pgAdmin搞砸了并将数据输出附加在一起?我添加了问号,因为我没有过多地查看实际数据,但输出似乎每次都会增加n行,n是查询的实际行数应该回来。

示例 创建一个表并插入一些数据。我的表格如下:

CREATE TABLE sample
(
    name_1 character varying(250),
    name_2 character varying(250),
    name_1_id integer,
    name_2_id integer
);

这是一个临时表,用于暂存数据导入以进行清理,然后我映射到name_1name_2的现有ID。一切运作良好。

我的行总数是2473,这是正确的。这会在每时间返回正确的值

select count(*) from sample;

现在是棘手的部分:

  • 我可以运行以下代码并且它可以工作(返回2473条记录)

    select name_1_id, name_2_id from sample;

  • 我可以运行它,它可以工作(2098条记录,分组后)

    select name_1_id, name_2_id from sample group by name_1_id, name_2_id;

  • 现在,如果我再次运行上述任一查询,我就会开始获得无意义的行。
    • 按查询分组返回4473行。
    • 在同一个pgAdmin会话中,每个额外的任一查询运行似乎都会在记录集中返回1000多行,尽管在某些查询中可能会有更多行。附加行是实际数据的副本,使用row_number生成行号也是重复的。 (当脚本插入脚本时,我正在迁移现有数据并使用row_number为查找数据生成主键。)

我假设这是一个pgAdmin错误。有没有办法解决这个问题,而不是每次都使用单独的工具或新的查询窗口(会话)?

1 个答案:

答案 0 :(得分:1)

是的,这是一个错误,将在下一个版本中修复。 参考:https://redmine.postgresql.org/issues/3039

您可以使用DEV版本直到它公开发布。 下载:https://developer.pgadmin.org/~dpage/runtime-revamp/

确保在外出后升级到稳定版本。