18th October 2018: PostgreSQL 11 Released!
Supported Versions: Current (11) / 10 / 9.6 / 9.5 / 9.4 / 9.3
Development Versions: devel
Unsupported versions: 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

DROP TYPE

Name

DROP TYPE  --  remove a user-defined data type

Synopsis

DROP TYPE typename [, ...]
  

Inputs

typename

The name of an existing type.

Outputs

DROP

The message returned if the command is successful.

ERROR: RemoveType: type 'typename' does not exist

This message occurs if the specified type is not found.

Description

DROP TYPE will remove a user type from the system catalogs.

Only the owner of a type can remove it.

Notes

  • It is the user's responsibility to remove any operators, functions, aggregates, access methods, subtypes, and tables that use a deleted type. However, the associated array data type (which was automatically created by CREATE TYPE) will be removed automatically.

  • If a built-in type is removed, the behavior of the server is unpredictable.

Examples

To remove the box type:

DROP TYPE box;

Compatibility

A DROP TYPE statement exists in SQL99. As with most other "drop" commands, DROP TYPE in SQL99 requires a "drop behavior" clause to select between dropping all dependent objects or refusing to drop if dependent objects exist:

DROP TYPE name { CASCADE | RESTRICT }

PostgreSQL currently ignores dependencies altogether.

Note that the CREATE TYPE command and the data type extension mechanisms in PostgreSQL differ from SQL99.

See Also

CREATE TYPE