---
title: "DROP LANGUAGE"
id: sql-droplanguage
pg_version: "20devel"
---
# 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`](sql-dropextension.md) 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.17](ddl-depend.md)). **`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](sql-alterlanguage.md), [CREATE LANGUAGE](sql-createlanguage.md)