Question

I know syntax for deleting multiple tables is:

DROP TABLE foo, bar, baz;

But in my case 3 tables having foreign keys in between them and with other tables which are not to be deleted.

  • Table1: Foreign keys From Table2, Table3, 3 more tables in database.
  • Table2: Forign keys From Table3, 2 more tables in database.
  • Table3: Forign keys From 3 more tables in database.

So how can I drop these 3 tables? They are having data in tables. Will above syntax work ignoring foreign keys? There should not be any data inconsistency in other tables in database.

Was it helpful?

Solution

You can tell Postgres to automatically drop all foreign keys referencing those tables by using the cascade keyword:

DROP TABLE foo, bar, baz CASCADE;

OTHER TIPS

Usually,

You will have chance of inconsistency if Primary keys of Table1, Table2, and Table3 are referred as foreign key in any other tables in the database.

If you have so, The safest way to drop these tables are

first drop contraints in those tables by -

ALTER TABLE table_name DROP CONSTRAINT "table_name_id_fkey";

and then drop these tables one by one.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top