如何删除postgresql中的表

时间:2013-12-09 20:04:29

标签: sql linux postgresql ubuntu

我的服务器上安装了postgresql,到目前为止工作正常。但是现在有一个表(所有其他表工作正常),我无法通过pgadmin3或drop打开。

我尝试重启服务器。没有帮助。我还尝试从服务器上的命令行中删除带有DROP TABLE的表。它只是卡住了。我已经执行了命令,它在过去一小时内一直挂在控制台中。

我不知道该怎么办。我可以在数据目录中删除一个文件吗?

3 个答案:

答案 0 :(得分:7)

最有可能的解释是:其他一些开放交易正在对表进行独占锁定。

您使用的是 pgAdmin ,因此您可以查看Tools -> Server Status。活动窗格列出了所有当前连接。例如,每个打开的SQL窗口都有一个(或多个)列表。寻找长期连接。

您还可以尝试发出DROP TABLE并查看此列表。运气好的话,你会看到阻止它的东西。一旦你确定了麻烦制造者并确定它不需要,你就可以杀死这个过程。可能因为设置不好而吸尘失控。

那,或某些事情严重受损。

答案 1 :(得分:1)

您可以尝试转储数据库,看看是否有效?另请查看http://www.postgresql.org/docs/9.1/static/runtime-config-logging.html#GUC-CLIENT-MIN-MESSAGES和log_min_messages选项。将其更改为调试并查看当您尝试删除表时发生的情况。

答案 2 :(得分:0)

在Windows用户的情况下。尝试通过以下步骤重新启动Postgresql:开始 - >运行 - > (然后键入:) services.msc。选择Local postgresql Server,然后按“Restart”。现在,继续尝试删除要删除的数据库或表(通过pgAdmin)。希望它有所帮助。