Appearance
DROP TABLE
Drop a table from the database.
DROP TABLE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]- IF EXISTS
Do not return a warning if the table does not exist.
- name
Name the table to drop, optionally qualified by its schema name. You can drop multiple tables with one statement. You must drop tables from the database where they were created.
- CASCADE
If other objects depend on the table, drop them as well.
Views are not treated as dependent on tables; therefore, they persist in the database when their tables are dropped with the
CASCADEoption. For example, you can create tableteam, then create viewteamviewby selecting fromteam. If you drop team withCASCADE, the view remains in the database. If tableteamis re-created, you can select fromteamviewbased on the data inteam.- RESTRICT
If other objects depend on the table, do not drop the table. This is the default; however, views are not dependent objects.
For example, drop three tables with one statement:
premdb=# drop table awayteam, hometeam, team;
DROP TABLECreate a view, then drop the table that the view selects from:
premdb=# create view htv as select * from hometeam;
CREATE VIEW
premdb=# drop table hometeam restrict;
DROP TABLENote that the RESTRICT option does not prevent the table from being dropped. The view is considered independent and persists until it is dropped explicitly with a DROP VIEW statement.
Attempt to drop a table from a remote database:
yellowbrick=# drop table premdb.public.season;
ERROR: cross-database references are not allowed: "premdb.public.season"