更新语句导致异常行为

时间:2019-12-24 05:37:16

标签: sql postgresql

我有一个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

这可能是怎么回事?

1 个答案:

答案 0 :(得分:2)

如提到的here

  

重新启动pgadmin,然后重试查询。

     

pgadmin似乎很难处理连接超时,因此您将   一段时间后,通常需要重新启动整个pgadmin应用程序   不使用它,然后经历扩展树的过程   再次回到您正在使用的桌子上。

     

这确实让我怀疑pgadmin的作者是否真的吃过东西   他们自己的狗粮,因为与   说SQL Server的Management Studio