---
name: "drop_type"
section: "7l"
platform: "linux"
package: "postgresql-client"
version: "7.2.1-2woody8"
release: "Debian 3.0 (Woody)"
platforms: ["linux"]
url: "https://new.carta.tech/drop_type/7l"
---

# drop\_type(7l)

remove a user-defined data 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**(l)
