1

我在数据库中有一个表,它应该有超过 1k 行。数据库是 Postgress。我使用以下命令:

select count(*) from icdten;它返回 1000 这是错误的

并且

select * from icdten;

返回前 1000 行,这是错误的,我想拥有所有这些。谷歌搜索没有找到,或者也许我在谷歌搜索错误的东西。

EDIT1:我使用 PgAdmin,可能是 PgAdmin 问题。我只是没有通过界面找到该选项。它应该有 14k 行。

4

3 回答 3

0

在 PgAdmin 中设置了可能的限制。请查看 PgAdmin 的选项/查询选项卡,如http://www.pgadmin.org/docs/1.4/options-tab3.html ( http://www.pgadmin.org/docs/1.16/options-tab4 中所述。您提到的 1.16 版的html ):

要检索的最大行数可以设置为 1000(默认为 100,人们通常会更改此值),并且“如果估计小于,则计算行数”可能会影响 COUNT 函数(它可以使用表统计中的计数而不是实际表计数,所以尝试将此值临时设置为一个大数字)

于 2013-06-04T06:41:50.970 回答
0

以下是解决此问题的方法:

  1. 首先从 psql 尝试。虽然 select count(*) 应该在两者上都给你相同的结果,但也许有什么事情发生了。那里也没有限制,所以你可以:

    \o testfile
    \i select * from icdten
    \q (exits psql)
    wc -l testfile
    
  2. 如果仍然显示 1000 行,那么您可能在该表中有 1000 行,开始确保您连接到正确的数据库,查询您认为的表,等等。

    EXPLAIN ANALYSE
    

在这种情况下可能会有所帮助。

于 2013-09-16T14:40:51.170 回答
0

这不是错误。它只是某些 PostgreSQL 版本中的默认参数集。您可以通过转到 PostgreSQL 的安装目录并导航到pgAdmin 4\web. 版本 12 的目录如下所示:

C:\Program Files\PostgreSQL\12\pgAdmin 4\web

使用文本编辑器打开config.py并搜索ON_DEMAND_RECORD_COUNT. 它最初设置为1000

##########################################################################
# Number of records to fetch in one batch in query tool when query result
# set is large.
##########################################################################
ON_DEMAND_RECORD_COUNT = 1000

您可以将此行注释掉,但它可能会导致其他错误。我建议将其更改为较大的值,例如 10,000,000。如果修改后无法保存文件,则需要将文件复制到其他地方,进行更改并保存,然后复制回原始文件夹并替换为原始文件。

于 2020-08-02T08:30:34.717 回答