--- 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)