Обсуждение: Mind of its own?

Поиск
Список
Период
Сортировка

Mind of its own?

От
Дата:
Hopefully not, but I feel so helpless.

What happened?

I am using Postgresql 9.6, and the latest phppgadmin. OS is Debian 9.6.

1. Created a database.
2. Created tables inside that database.
3. Dropped that database.


Now, what happens is when I create another database with the same name or different name, all those tables are already
insidethat database!!! I have not run the table create script.  
This is a cruel joke.

What is happening?



Re: Mind of its own?

От
Ian Barwick
Дата:
On 3/1/19 9:10 AM, s400t@yahoo.co.jp wrote:
> Hopefully not, but I feel so helpless.
> 
> What happened?
> 
> I am using Postgresql 9.6, and the latest phppgadmin. OS is Debian 9.6.
> 
> 1. Created a database.
> 2. Created tables inside that database.
> 3. Dropped that database.
> 
> 
> Now, what happens is when I create another database with the same name or different name, all those tables are
alreadyinside that database!!! I have not run the table create script.
 
> This is a cruel joke.
> 
> What is happening?

Have you tried using psql to connect directly to PostgreSQL to verify
what phppgadmin is telling you?


Regards

Ian Barwick


-- 
  Ian Barwick                   https://www.2ndQuadrant.com/
  PostgreSQL Development, 24x7 Support, Training & Services


Re: Mind of its own?

От
Tom Lane
Дата:
<s400t@yahoo.co.jp> writes:
> I am using Postgresql 9.6, and the latest phppgadmin. OS is Debian 9.6.

> 1. Created a database.
> 2. Created tables inside that database.
> 3. Dropped that database.

> Now, what happens is when I create another database with the same name or different name, all those tables are
alreadyinside that database!!! I have not run the table create script.  

I think you created some tables in the "template1" database, which is
(by default) what CREATE DATABASE clones to make a new DB.  Duplicating
its contents is considered a feature not a bug.

You could manually clean out template1, or if that seems painful,
you could drop it and recreate it by cloning template0 (see
CREATE DATABASE's TEMPLATE option).  template0 exists precisely
to be a virgin empty database for this sort of purpose.

(There is an interlock to prevent you from dropping either
of these template databases accidentally.  Overriding that is
left as an exercise for the student.)

            regards, tom lane


Re: Mind of its own?

От
Дата:
JD, IB, TL:

Yes!!! I found the whole bunch of tables in template 1!


It's so liberating. 

Thank you.





----- Original Message -----
> From: Tom Lane <tgl@sss.pgh.pa.us>
> To: s400t@yahoo.co.jp
> Cc: "pgsql-general@lists.postgresql.org" <pgsql-general@lists.postgresql.org>
> Date: 2019/2/28, Thu 17:24
> Subject: Re: Mind of its own?
>
>& lt;s400t@yahoo.co.jp> writes:
>>  I am using Postgresql 9.6, and the latest phppgadmin. OS is Debian 9.6.
>
>>  1. Created a database.
>>  2. Created tables inside that database.
>>  3. Dropped that database.
>
>>  Now, what happens is when I create another database with the same name or
> different name, all those tables are already inside that database!!! I have not
> run the table create script. 
>
> I think you created some tables in the "template1" database, which is
> (by default) what CREATE DATABASE clones to make a new DB.  Duplicating
> its contents is considered a feature not a bug.
>
> You could manually clean out template1, or if that seems painful,
> you could drop it and recreate it by cloning template0 (see
> CREATE DATABASE's TEMPLATE option).  template0 exists precisely
> to be a virgin empty database for this sort of purpose.
>
> (There is an interlock to prevent you from dropping either
> of these template databases accidentally.  Overriding that is
> left as an exercise for the student.)
>
>             regards, tom lane
>