我在Greenplum(4.3.5.1)中有一个表,我想删除最初使用主键约束创建的约束。我试图这样做,但查询运行了2-3个小时,我已取消它,因为没有其他选项,
然后我有一个备份并尝试删除表但查询运行2-3个小时,最后我再次取消了查询 (当执行drop table查询时,它在表pg_depend,pg_class和pg_type上显示RowExclusiveLock)
我刚试过截断但同样的问题
任何人都可以帮忙,这可能是什么原因?什么是解决这个问题的最佳方法?
此致
答案 0 :(得分:1)
你应该使用truncate:
TRUNCATE TABLE table_name;
答案 1 :(得分:1)
最有可能遇到锁定问题。要检查的第一件事是pg_locks
- 它会显示表格上的当前锁定。我打赌你的桌子被某个进程锁定了,这就是truncate
和drop table
悬挂的原因。找到阻塞查询并终止它,然后您就可以轻松地删除/截断目标表。
以下是可以帮助您的查询:
select * from pg_locks where relation = 'mytablename'::regclass::oid;