我在Greenplum(4.3.5.1)中有一个表,我想删除最初使用主键约束创建的约束。我试着去做,但是查询已经运行了2-3个小时,我已经取消了它,因为没有其他选择了,
然后我备份并尝试删除表,但查询正在运行2-3个小时,最后我再次取消了查询(当执行drop table query时,它在表pg_depend,pg_class和pg_type上显示RowExclusiveLock )
我刚刚也尝试了截断,但同样的问题
有人能帮上忙吗?原因是什么??解决这个问题的最好方法是什么?
问候
发布于 2016-03-10 16:33:31
最有可能的是你遇到了锁定问题。首先要检查的是pg_locks -它将显示表上的当前锁。我打赌您的表被某个进程锁定了,这就是truncate和drop table挂起的原因。找到阻塞查询并终止它,这样就可以很容易地删除/截断目标表。
以下是对您有帮助的查询:
select * from pg_locks where relation = 'mytablename'::regclass::oid;发布于 2016-03-10 15:38:05
您应该使用truncate:
TRUNCATE TABLE table_name;http://www.postgresql.org/docs/9.1/static/sql-truncate.html
https://stackoverflow.com/questions/35910244
复制相似问题