Mind of its own?

Started by Nonameabout 7 years ago4 messagesgeneral
Jump to latest
#1Noname
s400t@yahoo.co.jp

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 inside that database!!! I have not run the table create script. 
This is a cruel joke.

What is happening?

#2Ian Lawrence Barwick
barwick@gmail.com
In reply to: Noname (#1)
Re: Mind of its own?

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 already inside 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

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Noname (#1)
Re: Mind of its own?

<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

#4Noname
s400t@yahoo.co.jp
In reply to: Tom Lane (#3)
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 -----

Show quoted text

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