我有一个Postgresql数据库,其中的表是使用以下SQL创建的:
create table aisle_slots (
id serial not null primary key,
occupied boolean,
aisle_index int,
x real,
y real,
rot real
);
插入和删除查询在此表上工作正常。
每种类型的查询都可以在数据库中的其他所有表上正常工作。
但是,运行以下更新查询会导致异常行为:
update aisle_slots
set occupied = true
where id = 3
在pgAdmin中运行此命令将锁定应用程序(它停留在“等待查询执行完成...”上)。在Psycopg2中运行它会立即返回,但实际上不会在数据库中进行任何更改。都不会导致任何错误消息或日志输出。
select version()
输出:
PostgreSQL 9.6.13 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16), 64-bit
这可能是怎么回事?
答案 0 :(得分:2)
如提到的here
重新启动pgadmin,然后重试查询。
pgadmin似乎很难处理连接超时,因此您将 一段时间后,通常需要重新启动整个pgadmin应用程序 不使用它,然后经历扩展树的过程 再次回到您正在使用的桌子上。
这确实让我怀疑pgadmin的作者是否真的吃过东西 他们自己的狗粮,因为与 说SQL Server的Management Studio
。