【发布时间】:2021-03-15 05:27:58
【问题描述】:
我正在尝试删除一个空表
drop table temp; 查询一直在运行。
所以,我试图找到可能阻止当前查询的其他查询。 这是我尝试过的:
SELECT *
FROM pg_locks l
JOIN pg_class t ON l.relation = t.oid AND t.relkind = 'r'
WHERE t.relname = 'temp';
此查询返回零结果
SELECT database, gid FROM pg_prepared_xacts;
这也没有给出任何结果。
该表为分区表,已成功删除该表的分区。
我什至无法获得\d temp 的结果。
发生了什么事? 我怎样才能解决这个问题?
当我在本地尝试相同时,不会发生这种情况。工作得很好。
【问题讨论】:
-
pg 的哪个版本,这些是物理分区还是逻辑分区?
-
分区表有
relkind = 'p',因此您的查询没有返回任何内容也就不足为奇了。通常,检查pg_stat_activity以查看会话是否被某些东西阻止会更容易。 -
即使表格给我的结果为零,我仍然无法删除甚至获取表格描述:(
标签: sql postgresql sql-delete partitioning