Greenplum:无法删除/截断表格

时间:2016-03-10 07:32:35

标签: postgresql greenplum

我在Greenplum(4.3.5.1)中有一个表,我想删除最初使用主键约束创建的约束。我试图这样做,但查询运行了2-3个小时,我已取消它,因为没有其他选项,

然后我有一个备份并尝试删除表但查询运行2-3个小时,最后我再次取消了查询 (当执行drop table查询时,它在表pg_depend,pg_class和pg_type上显示RowExclusiveLock)

我刚试过截断但同样的问题

任何人都可以帮忙,这可能是什么原因?什么是解决这个问题的最佳方法?

此致

2 个答案:

答案 0 :(得分:1)

你应该使用truncate:

TRUNCATE TABLE  table_name;

http://www.postgresql.org/docs/9.1/static/sql-truncate.html

答案 1 :(得分:1)

最有可能遇到锁定问题。要检查的第一件事是pg_locks - 它会显示表格上的当前锁定。我打赌你的桌子被某个进程锁定了,这就是truncatedrop table悬挂的原因。找到阻塞查询并终止它,然后您就可以轻松地删除/截断目标表。

以下是可以帮助您的查询:

select * from pg_locks where relation = 'mytablename'::regclass::oid;