删除并重新创建数据库后,将重新创建删除的postgres表

时间:2019-01-12 20:29:00

标签: postgresql drop-table

我正在尝试以编程方式创建和删除数据库,以便在Postgres中进行测试。但是,当我运行DROP TABLE命令时,我无法终生使它真正消失,并且当我去创建表时,这会导致脚本失败(通过“关系已存在”)第二轮测试。我真的很沮丧,主要是因为好像postgres并没有让我真正了解在任何给定时间点它处于什么状态。

这是我遇到的那种事情的一个例子。我创建了一个临时测试数据库,其中包含一些表,然后删除了所有表。从第一个命令可以看到,Posgres认为其中没有任何表。离开空数据库,删除该数据库,然后重新创建它,将导致我刚刚删除的表神秘地重新出现。

tmptest=> \d
Did not find any relations.
tmptest=> \c maindb;
Password for user user1: 
psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1), server 10.4)
SSL connection (...)
You are now connected to database "maindb" as user "user1".
maindb=> drop database tmptest;
DROP DATABASE
maindb=> create database tmptest;
CREATE DATABASE
maindb=> \c tmptest;
Password for user user1: 
psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1), server 10.4)
SSL connection (...)
You are now connected to database "tmptest" as user "user1".
tmptest=> \d
                  List of relations
 Schema |           Name           |   Type   | Owner 
--------+--------------------------+----------+-------
 public | test_entity              | table    | user1

这是怎么回事?是否由于某些原因未提交drop命令?我怎样才能使桌子真正消失呢?

0 个答案:

没有答案