---
name: "DROP_LANGUAGE"
section: "7"
platform: "linux"
package: "postgresql"
version: "18.6-4"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/DROP_LANGUAGE"
---

# DROP\_LANGUAGE(7)

remove a procedural language

## NAME

DROP\_LANGUAGE - remove a procedural language

## SYNOPSIS

```
DROP [ PROCEDURAL ] LANGUAGE [ IF EXISTS ] name [ CASCADE | RESTRICT ]
```

## DESCRIPTION

**DROP LANGUAGE** removes the definition of a previously registered procedural language. You must be a superuser or the owner of the language to use **DROP LANGUAGE**.

**Note**\

As of PostgreSQL 9.1, most procedural languages have been made into “extensions”, and should therefore be removed with **DROP EXTENSION** not **DROP LANGUAGE**.

## PARAMETERS

IF EXISTS

Do not throw an error if the language does not exist. A notice is issued in this case.

*name*

The name of an existing procedural language.

CASCADE

Automatically drop objects that depend on the language (such as functions in the language), and in turn all objects that depend on those objects (see Section 5.15).

RESTRICT

Refuse to drop the language if any objects depend on it. This is the default.

## EXAMPLES

This command removes the procedural language plsample:

```
DROP LANGUAGE plsample;
```

## COMPATIBILITY

There is no **DROP LANGUAGE** statement in the SQL standard.

## SEE ALSO

ALTER LANGUAGE ([**ALTER\_LANGUAGE**(7)](/ALTER_LANGUAGE/7.md)), CREATE LANGUAGE ([**CREATE\_LANGUAGE**(7)](/CREATE_LANGUAGE/7.md))
