{"Entry":{"collection":"sql","key":"drop-language","name":"DROP LANGUAGE","aliases":["droplanguage"],"metadata":{"aliases":["droplanguage"],"changed_in":["6.5","7.1","7.2","7.3","8.2"],"changes":[{"from":"6.4","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","usage"],"removed":[]},"status":"changed","synopsis":{"added":["DROP PROCEDURAL LANGUAGE 'name'"],"removed":["DROP PROCEDURAL LANGUAGE 'langname'"]},"to":"6.5"},{"from":"6.5","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description"],"removed":[]},"status":"changed","synopsis":null,"to":"7.0"},{"from":"7.0","purpose_changed":false,"renamed":{"from_file":"sql-droplanguage.htm","to_file":"sql-droplanguage.html"},"sections":{"added":[],"changed":[],"removed":[]},"status":"changed","synopsis":{"added":["DROP [ PROCEDURAL ] LANGUAGE 'name'"],"removed":[]},"to":"7.1"},{"from":"7.1","purpose_changed":true,"renamed":null,"sections":{"added":[],"changed":["description","usage"],"removed":[]},"status":"changed","synopsis":{"added":["DROP [ PROCEDURAL ] LANGUAGE name"],"removed":["DROP [ PROCEDURAL ] LANGUAGE 'name'"]},"to":"7.2"},{"from":"7.2","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description"],"removed":[]},"status":"changed","synopsis":{"added":["DROP [ PROCEDURAL ] LANGUAGE name [ CASCADE | RESTRICT ]"],"removed":[]},"to":"7.3"},{"from":"7.3","purpose_changed":true,"renamed":null,"sections":{"added":["parameters","examples","see_also"],"changed":["description","compatibility"],"removed":["usage"]},"status":"changed","synopsis":null,"to":"7.4"},{"from":"8.1","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":{"added":["DROP [ PROCEDURAL ] LANGUAGE [ IF EXISTS ] name [ CASCADE | RESTRICT ]"],"removed":[]},"to":"8.2"},{"from":"8.2","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters"],"removed":[]},"status":"changed","synopsis":null,"to":"8.3"},{"from":"9.0","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description"],"removed":[]},"status":"changed","synopsis":null,"to":"9.1"},{"from":"9.5","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":null,"to":"9.6"},{"from":"9.6","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","see_also"],"removed":[]},"status":"changed","synopsis":null,"to":"10"},{"from":"11","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":null,"to":"12"},{"from":"13","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":null,"to":"14"},{"from":"16","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":null,"to":"17"},{"from":"18","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":null,"to":"19"}],"content_hash":"6d7bd875bf552571bb469bd20a91c1d710bd35c6716c271224e627ccb2806100","editorial":{},"first_version":"6.4","group":"routine","imported_at":"2026-09-30T17:43:37.26041+08:00","last_version":"20","name":"DROP LANGUAGE","object":"LANGUAGE","position":2010,"present_in":["6.4","6.5","7.0","7.1","7.2","7.3","7.4","8.0","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6","10","11","12","13","14","15","16","17","18","19","20"],"purpose":"remove a procedural language","purpose_zh":"","related":["alter-language","create-language"],"slug":"drop-language","source_rev":"a709ab85","synopsis":"DROP [ PROCEDURAL ] LANGUAGE [ IF EXISTS ] name [ CASCADE | RESTRICT ]","verb":"DROP"}},"Definition":{"Collection":"sql","Key":"drop-language","SourceDatabase":"center","Version":"18","SourceTable":"sqlcmd","SourceKey":"drop-language","SourceRevision":"a709ab85","Facts":{"anchor":"SQL-DROPLANGUAGE","file":"sql-droplanguage.html","lang":"en","name":"DROP LANGUAGE","purpose":"remove a procedural language","purpose_zh":"","related":["alter-language","create-language"],"sections":[{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eDROP LANGUAGE\u003c/code\u003e removes the definition of a previously registered procedural language. You must be a superuser or the owner of the language to use \u003ccode class=\"command\"\u003eDROP LANGUAGE\u003c/code\u003e.\u003c/p\u003e\u003cdiv class=\"note\"\u003e\u003ch3\u003eNote\u003c/h3\u003e\u003cp\u003eAs of \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e 9.1, most procedural languages have been made into \u003cspan class=\"quote\"\u003e“\u003cspan class=\"quote\"\u003eextensions\u003c/span\u003e”\u003c/span\u003e, and should therefore be removed with \u003ca href=\"/docs/18/sql-dropextension.html\" title=\"DROP EXTENSION\"\u003e\u003ccode class=\"command\"\u003eDROP EXTENSION\u003c/code\u003e\u003c/a\u003e not \u003ccode class=\"command\"\u003eDROP LANGUAGE\u003c/code\u003e.\u003c/p\u003e\u003c/div\u003e","key":"description","title":"Description"},{"html":"\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eIF EXISTS\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eDo not throw an error if the language does not exist. A notice is issued in this case.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of an existing procedural language.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eCASCADE\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eAutomatically drop objects that depend on the language (such as functions in the language), and in turn all objects that depend on those objects (see \u003ca href=\"/docs/18/ddl-depend.html\" title=\"5.15. Dependency Tracking\"\u003eSection 5.15\u003c/a\u003e).\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eRESTRICT\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eRefuse to drop the language if any objects depend on it. This is the default.\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","key":"parameters","title":"Parameters"},{"html":"\u003cp\u003eThis command removes the procedural language \u003ccode class=\"literal\"\u003eplsample\u003c/code\u003e:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eDROP LANGUAGE plsample;\n\u003c/pre\u003e","key":"examples","title":"Examples"},{"html":"\u003cp\u003eThere is no \u003ccode class=\"command\"\u003eDROP LANGUAGE\u003c/code\u003e statement in the SQL standard.\u003c/p\u003e","key":"compatibility","title":"Compatibility"},{"html":"\u003cspan class=\"simplelist\"\u003e\u003ca href=\"/wiki/sql/alter-language/?v=18\" title=\"ALTER LANGUAGE\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER LANGUAGE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/create-language/?v=18\" title=\"CREATE LANGUAGE\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE LANGUAGE\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e","key":"see_also","title":"See Also"}],"sections_same_as":"","slug":"18","synopsis_html":"DROP [ PROCEDURAL ] LANGUAGE [ IF EXISTS ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e [ CASCADE | RESTRICT ]","synopsis_text":"DROP [ PROCEDURAL ] LANGUAGE [ IF EXISTS ] name [ CASCADE | RESTRICT ]"},"ManualEvidence":{},"MeasuredEvidence":{}},"Text":{"Collection":"sql","Key":"drop-language","SourceDatabase":"pgweb","Version":"18","Locale":"zh-Hans","Title":"DROP LANGUAGE","Summary":"移除一种过程语言","BodyHTML":"\u003cpre\u003eDROP [ PROCEDURAL ] LANGUAGE [ IF EXISTS ] name [ CASCADE | RESTRICT ]\u003c/pre\u003e\u003csection\u003e\u003ch2\u003e描述\u003c/h2\u003e\u003cp\u003e\u003ccode\u003eDROP LANGUAGE\u003c/code\u003e移除一种先前注册的过程语言的定义。要使用\u003ccode\u003eDROP LANGUAGE\u003c/code\u003e，必须是超级用户或该语言的所有者。\u003c/p\u003e\u003cdiv\u003e\u003ch3\u003e注意\u003c/h3\u003e\u003cp\u003e从\u003cspan\u003ePostgreSQL\u003c/span\u003e 9.1 起，大多数过程语言都已被实现为\u003cspan\u003e“\u003cspan\u003e扩展\u003c/span\u003e”\u003c/span\u003e，因此应当使用\u003ca href=\"/docs/18/sql-dropextension.html\" title=\"DROP EXTENSION\" rel=\"nofollow\"\u003e\u003ccode\u003eDROP EXTENSION\u003c/code\u003e\u003c/a\u003e 而不是\u003ccode\u003eDROP LANGUAGE\u003c/code\u003e来移除它们。\u003c/p\u003e\u003c/div\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e参数\u003c/h2\u003e\u003cdiv\u003e\u003cdl\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eIF EXISTS\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e如果该语言不存在，则不要抛出错误。这种情况下会发出一个提示。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e现有过程语言的名称。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eCASCADE\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e自动删除依赖于该语言的对象（例如以该语言编写的函数），以及进一步依赖于这些对象的所有对象（参见\u003ca href=\"/docs/18/ddl-depend.html\" rel=\"nofollow\"\u003e第 5.15 节\u003c/a\u003e）。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eRESTRICT\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e如果有任何对象依赖于该语言，则拒绝删除它。这是默认值。\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e示例\u003c/h2\u003e\u003cp\u003e此命令移除过程语言\u003ccode\u003eplsample\u003c/code\u003e：\u003c/p\u003e\u003cpre\u003eDROP LANGUAGE plsample;\n\u003c/pre\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e兼容性\u003c/h2\u003e\u003cp\u003eSQL 标准中没有\u003ccode\u003eDROP LANGUAGE\u003c/code\u003e语句。\u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e另见\u003c/h2\u003e\u003cspan\u003e\u003ca href=\"/wiki/sql/alter-language/?v=18\" title=\"ALTER LANGUAGE\" rel=\"nofollow\"\u003e\u003cspan\u003eALTER LANGUAGE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/create-language/?v=18\" title=\"CREATE LANGUAGE\" rel=\"nofollow\"\u003e\u003cspan\u003eCREATE LANGUAGE\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e\u003c/section\u003e","SourceRevision":"1b5ca64c","ContentHash":"19d77616eeae421b00c01ba7ed1c47e5e163f45315e8b3eaeb217d4340975835","Payload":{"purpose_zh":"移除一种过程语言","sections":[{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eDROP LANGUAGE\u003c/code\u003e移除一种先前注册的过程语言的定义。要使用\u003ccode class=\"command\"\u003eDROP LANGUAGE\u003c/code\u003e，必须是超级用户或该语言的所有者。\u003c/p\u003e\u003cdiv class=\"note\"\u003e\u003ch3\u003e注意\u003c/h3\u003e\u003cp\u003e从\u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e 9.1 起，大多数过程语言都已被实现为\u003cspan class=\"quote\"\u003e“\u003cspan class=\"quote\"\u003e扩展\u003c/span\u003e”\u003c/span\u003e，因此应当使用\u003ca href=\"/docs/18/sql-dropextension.html\" title=\"DROP EXTENSION\"\u003e\u003ccode class=\"command\"\u003eDROP EXTENSION\u003c/code\u003e\u003c/a\u003e 而不是\u003ccode class=\"command\"\u003eDROP LANGUAGE\u003c/code\u003e来移除它们。\u003c/p\u003e\u003c/div\u003e","key":"description","title":"描述"},{"html":"\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eIF EXISTS\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e如果该语言不存在，则不要抛出错误。这种情况下会发出一个提示。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e现有过程语言的名称。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eCASCADE\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e自动删除依赖于该语言的对象（例如以该语言编写的函数），以及进一步依赖于这些对象的所有对象（参见\u003ca href=\"/docs/18/ddl-depend.html\" title=\"5.15. 依赖跟踪\"\u003e第 5.15 节\u003c/a\u003e）。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eRESTRICT\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e如果有任何对象依赖于该语言，则拒绝删除它。这是默认值。\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","key":"parameters","title":"参数"},{"html":"\u003cp\u003e此命令移除过程语言\u003ccode class=\"literal\"\u003eplsample\u003c/code\u003e：\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eDROP LANGUAGE plsample;\n\u003c/pre\u003e","key":"examples","title":"示例"},{"html":"\u003cp\u003eSQL 标准中没有\u003ccode class=\"command\"\u003eDROP LANGUAGE\u003c/code\u003e语句。\u003c/p\u003e","key":"compatibility","title":"兼容性"},{"html":"\u003cspan class=\"simplelist\"\u003e\u003ca href=\"/wiki/sql/alter-language/?v=18\" title=\"ALTER LANGUAGE\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER LANGUAGE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/create-language/?v=18\" title=\"CREATE LANGUAGE\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE LANGUAGE\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e","key":"see_also","title":"另见"}],"sections_same_as":"","synopsis_html":"DROP [ PROCEDURAL ] LANGUAGE [ IF EXISTS ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e [ CASCADE | RESTRICT ]","synopsis_text":"DROP [ PROCEDURAL ] LANGUAGE [ IF EXISTS ] name [ CASCADE | RESTRICT ]"}},"RequestedLocale":"zh-Hans","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","6.4","6.5","7.0","7.1","7.2","7.3","7.4","8.0","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
