Postgres在运行Select查询时没有返回任何数据

时间:2018-02-22 11:42:26

标签: postgresql psql postgresql-9.3 postgresql-9.2

我正在运行Postgres 9.22.2并尝试运行以下语句:

从表格限制100中选择*;

当我这样做时,命令就会挂起。 ps输出表示它     等待:

postgres lookup [local] COPY  
postgres: lookup exomeSNP [local] SELECT waiting

我有一个shell脚本,可以定期复制CSV中的数据。

以下是pg_stat_activity的前2条记录

datname   |  pid  | state  |                                                                                                                              query                    

------------+-------+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
 lookup     | 22243 | active | copy cell_info(radio, mcc, net, area, cell, unit, lon, lat, range, samples, changeable, created, updated, average_signal) From '/data/cell-dup.cs
v' DELIMITER ',' CSV HEADER

 lookup     |  6529 | active | SELECT * FROM "public"."cell_info" WHERE "cell"=$1 and “net"=$4 ORDER BY "cell_info_id" LIMIT 1

2 个答案:

答案 0 :(得分:1)

并发事务在表上持有ACCESS EXCLUSIVE锁。 TRUNCATEALTER TABLECREATE INDEX等语句需要此类锁定。仅举几例。

您可以通过查询pg_locks视图找出哪个交易。

pg_stat_activity将告诉您并发事务正在做什么。它不一定是导致锁定的事务中的最后一个语句。

答案 1 :(得分:-1)

Bud你可以从postgres活动日志调试

 SELECT datname,pid,state,query FROM pg_stat_activity

Execute this query and find the state of query