我在数据库中有一个表,它应该有超过 1k 行。数据库是 Postgress。我使用以下命令:
select count(*) from icdten;
它返回 1000 这是错误的
并且
select * from icdten;
返回前 1000 行,这是错误的,我想拥有所有这些。谷歌搜索没有找到,或者也许我在谷歌搜索错误的东西。
EDIT1:我使用 PgAdmin,可能是 PgAdmin 问题。我只是没有通过界面找到该选项。它应该有 14k 行。
我在数据库中有一个表,它应该有超过 1k 行。数据库是 Postgress。我使用以下命令:
select count(*) from icdten;
它返回 1000 这是错误的
并且
select * from icdten;
返回前 1000 行,这是错误的,我想拥有所有这些。谷歌搜索没有找到,或者也许我在谷歌搜索错误的东西。
EDIT1:我使用 PgAdmin,可能是 PgAdmin 问题。我只是没有通过界面找到该选项。它应该有 14k 行。
在 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 函数(它可以使用表统计中的计数而不是实际表计数,所以尝试将此值临时设置为一个大数字)
以下是解决此问题的方法:
首先从 psql 尝试。虽然 select count(*) 应该在两者上都给你相同的结果,但也许有什么事情发生了。那里也没有限制,所以你可以:
\o testfile
\i select * from icdten
\q (exits psql)
wc -l testfile
如果仍然显示 1000 行,那么您可能在该表中有 1000 行,开始确保您连接到正确的数据库,查询您认为的表,等等。
EXPLAIN ANALYSE
在这种情况下可能会有所帮助。
这不是错误。它只是某些 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。如果修改后无法保存文件,则需要将文件复制到其他地方,进行更改并保存,然后复制回原始文件夹并替换为原始文件。