python – Postgresql DROP TABLE不起作用

我试图用“DROP TABLE”命令删除几个表,但由于一个未知的原因,程序只是“坐”,并且不会删除我想要的数据库中的表。

我在数据库中有3个表:

产品,帐单和Bill_Products,用于引用帐单中的产品。

我设法删除/删除产品,但我不能同样的帐单和Bill_Products。
我发行了相同的“DROP TABLE Bill CASCADE”;命令,但命令行只是摊位。我也使用没有CASCADE选项的简单版本。

你有什么想法为什么会发生这种情况?

更新:

我一直在想,数据库有可能保留产品对账单的一些引用,也许这就是为什么它不会删除比尔表。

所以,在这个问题上,我从Bill_Products发出了一个简单的SELECT *,并在几秒钟之后(10-15秒)发出一个简单的SELECT *(奇怪的是,因为我不认为这是一个空的表,这样长的时间是正常的)出来的表和它的内容,哪些是没有。 (显然没有从产品到Bill的参考资料)。

什么是输出

SELECT *
  FROM pg_locks l
  JOIN pg_class t ON l.relation = t.oid AND t.relkind = 'r'
 WHERE t.relname = 'Bill';

可能还有其他会话并行使用您的表,并且您无法获取Access Exclusive锁来放弃它。

翻译自:https://stackoverflow.com/questions/10317114/postgresql-drop-table-doesnt-work

转载注明原文:python – Postgresql DROP TABLE不起作用