【发布时间】:2012-05-06 05:21:29
【问题描述】:
我正在尝试使用 "DROP TABLE" 命令删除一些表,但由于未知原因,程序只是“坐下”,并没有删除我希望它在数据库中删除的表。
我在数据库中有 3 个表:
Product、Bill 和 Bill_Products,用于在 bills 中引用产品。
我设法删除/删除了产品,但我不能对 bill 和 Bill_Products 执行相同的操作。
我正在发出相同的"DROP TABLE Bill CASCADE;" 命令,但命令行只是停止。我也使用了没有CASCADE 选项的简单版本。
你知道为什么会这样吗?
更新:
我一直在想,数据库有可能保留一些从产品到账单的引用,也许这就是它不会删除账单表的原因。
所以,就此而言,我发布了一个简单的SELECT * from Bill_Products,并在几 (10-15) 秒后(奇怪的是,因为我认为当有一张空桌子时它持续这么长时间是不正常的)它打印出表格及其内容,没有。 (所以显然没有从 Products 到 Bill 的引用。
【问题讨论】:
-
不做 CASCADE 怎么办。也许约束是指现在缺少的产品
-
也试过了,但没有效果。
-
"命令行停止了"这是什么意思?
psql崩溃、挂起或冻结?你必须杀了它吗? Ctrl-C 有什么作用?我想我只是说定义'摊位'。还是你没有使用 psql? -
也许另一个事务在表上有一个锁,所以你不能删除它?
-
重启只适用于名为“Bill”的表;-)
标签: python database django postgresql