<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >DROP INDEX</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REV="MADE" HREF="mailto:pgsql-docs@postgresql.org"><LINK REL="HOME" TITLE="PostgreSQL 9.6.19 Documentation" HREF="index.html"><LINK REL="UP" TITLE="SQL Commands" HREF="sql-commands.html"><LINK REL="PREVIOUS" TITLE="DROP GROUP" HREF="sql-dropgroup.html"><LINK REL="NEXT" TITLE="DROP LANGUAGE" HREF="sql-droplanguage.html"><LINK REL="STYLESHEET" TYPE="text/css" HREF="stylesheet.css"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"><META NAME="creation" CONTENT="2020-09-02T07:27:19"></HEAD ><BODY CLASS="REFENTRY" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="4" ALIGN="center" VALIGN="bottom" ><A HREF="index.html" >PostgreSQL 9.6.19 Documentation</A ></TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A TITLE="DROP GROUP" HREF="sql-dropgroup.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A HREF="sql-commands.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="60%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="20%" ALIGN="right" VALIGN="top" ><A TITLE="DROP LANGUAGE" HREF="sql-droplanguage.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="SQL-DROPINDEX" ></A >DROP INDEX</H1 ><DIV CLASS="REFNAMEDIV" ><A NAME="AEN86612" ></A ><H2 >Name</H2 >DROP INDEX -- remove an index</DIV ><DIV CLASS="REFSYNOPSISDIV" ><A NAME="AEN86615" ></A ><H2 >Synopsis</H2 ><PRE CLASS="SYNOPSIS" >DROP INDEX [ CONCURRENTLY ] [ IF EXISTS ] <TT CLASS="REPLACEABLE" ><I >name</I ></TT > [, ...] [ CASCADE | RESTRICT ]</PRE ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN86618" ></A ><H2 >Description</H2 ><P > <TT CLASS="COMMAND" >DROP INDEX</TT > drops an existing index from the database system. To execute this command you must be the owner of the index. </P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN86622" ></A ><H2 >Parameters</H2 ><P ></P ><DIV CLASS="VARIABLELIST" ><DL ><DT ><TT CLASS="LITERAL" >CONCURRENTLY</TT ></DT ><DD ><P > Drop the index without locking out concurrent selects, inserts, updates, and deletes on the index's table. A normal <TT CLASS="COMMAND" >DROP INDEX</TT > acquires exclusive lock on the table, blocking other accesses until the index drop can be completed. With this option, the command instead waits until conflicting transactions have completed. </P ><P > There are several caveats to be aware of when using this option. Only one index name can be specified, and the <TT CLASS="LITERAL" >CASCADE</TT > option is not supported. (Thus, an index that supports a <TT CLASS="LITERAL" >UNIQUE</TT > or <TT CLASS="LITERAL" >PRIMARY KEY</TT > constraint cannot be dropped this way.) Also, regular <TT CLASS="COMMAND" >DROP INDEX</TT > commands can be performed within a transaction block, but <TT CLASS="COMMAND" >DROP INDEX CONCURRENTLY</TT > cannot. </P ><P > For temporary tables, <TT CLASS="COMMAND" >DROP INDEX</TT > is always non-concurrent, as no other session can access them, and non-concurrent index drop is cheaper. </P ></DD ><DT ><TT CLASS="LITERAL" >IF EXISTS</TT ></DT ><DD ><P > Do not throw an error if the index does not exist. A notice is issued in this case. </P ></DD ><DT ><TT CLASS="REPLACEABLE" ><I >name</I ></TT ></DT ><DD ><P > The name (optionally schema-qualified) of an index to remove. </P ></DD ><DT ><TT CLASS="LITERAL" >CASCADE</TT ></DT ><DD ><P > Automatically drop objects that depend on the index, and in turn all objects that depend on those objects (see <A HREF="ddl-depend.html" >Section 5.13</A >). </P ></DD ><DT ><TT CLASS="LITERAL" >RESTRICT</TT ></DT ><DD ><P > Refuse to drop the index if any objects depend on it. This is the default. </P ></DD ></DL ></DIV ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN86660" ></A ><H2 >Examples</H2 ><P > This command will remove the index <TT CLASS="LITERAL" >title_idx</TT >: </P><PRE CLASS="PROGRAMLISTING" >DROP INDEX title_idx;</PRE ><P></P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN86665" ></A ><H2 >Compatibility</H2 ><P > <TT CLASS="COMMAND" >DROP INDEX</TT > is a <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > language extension. There are no provisions for indexes in the SQL standard. </P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN86670" ></A ><H2 >See Also</H2 ><A HREF="sql-createindex.html" >CREATE INDEX</A ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="sql-dropgroup.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="sql-droplanguage.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >DROP GROUP</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="sql-commands.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >DROP LANGUAGE</TD ></TR ></TABLE ></DIV ></BODY ></HTML >