DROP LANGUAGE
Read PG 18 manual ↗remove a procedural language
Syntax
DROP [ PROCEDURAL ] LANGUAGE [ IF EXISTS ] name [ CASCADE | RESTRICT ]
Syntax diagrams
Read left to right. Branches are choices, bypasses are optional, loops repeat. Select an underlined parameter to open its rule.
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 EXISTSDo not throw an error if the language does not exist. A notice is issued in this case.
nameThe name of an existing procedural language.
CASCADEAutomatically 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).
RESTRICTRefuse 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, CREATE LANGUAGEVersion history 5
- PG 19 → 20changed
- PG 18 → 19changed
- PG 16 → 17changed
- PG 13 → 14changed
- PG 11 → 12changed
Related entries
Definition snapshot: 2026-09-14T13:14:25.700916+00:00@99e6866c · English manual source