<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/truncate.sgml,v 1.21 2006/09/16 00:30:20 momjian Exp $
PostgreSQL documentation
-->

<refentry id="SQL-TRUNCATE">
 <refmeta>
  <refentrytitle id="SQL-TRUNCATE-TITLE">TRUNCATE</refentrytitle>
  <refmiscinfo>SQL - Language Statements</refmiscinfo>
 </refmeta>

 <refnamediv>
  <refname>TRUNCATE</refname>
  <refpurpose>empty a table or set of tables</refpurpose>
 </refnamediv>

 <indexterm zone="sql-truncate">
  <primary>TRUNCATE</primary>
 </indexterm>

 <refsynopsisdiv>
<synopsis>
TRUNCATE [ TABLE ] <replaceable class="PARAMETER">name</replaceable> [, ...] [ CASCADE | RESTRICT ]
</synopsis>
 </refsynopsisdiv>

 <refsect1>
  <title>Description</title>

  <para>
   <command>TRUNCATE</command> quickly removes all rows from a set of
   tables. It has the same effect as an unqualified
   <command>DELETE</command> on each table, but since it does not actually
   scan the tables it is faster. This is most useful on large tables.
  </para>
 </refsect1>
  
 <refsect1>
  <title>Parameters</title>

  <variablelist>
   <varlistentry>
    <term><replaceable class="PARAMETER">name</replaceable></term>
    <listitem>
     <para>
      The name (optionally schema-qualified) of a table to be truncated.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><literal>CASCADE</literal></term>
    <listitem>
     <para>
      Automatically truncate all tables that have foreign-key references
      to any of the named tables, or to any tables added to the group
      due to <literal>CASCADE</literal>.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><literal>RESTRICT</literal></term>
    <listitem>
     <para>
      Refuse to truncate if any of the tables have foreign-key references
      from tables that are not to be truncated.  This is the default.
     </para>
    </listitem>
   </varlistentry>
  </variablelist>
 </refsect1>

 <refsect1>
  <title>Notes</title>

  <para>
   Only the owner of a table may <command>TRUNCATE</> it.
  </para>

  <para>
   <command>TRUNCATE</> cannot be used on a table that has foreign-key
   references from other tables, unless all such tables are also truncated
   in the same command.  Checking validity in such cases would require table
   scans, and the whole point is not to do one.  The <literal>CASCADE</>
   option can be used to automatically include all dependent tables &mdash;
   but be very careful when using this option, else you might lose data you
   did not intend to!
  </para>

  <para>
   <command>TRUNCATE</> will not run any user-defined <literal>ON
   DELETE</literal> triggers that might exist for the tables.
  </para>
 </refsect1>

 <refsect1>
  <title>Examples</title>

  <para>
   Truncate the tables <literal>bigtable</literal> and <literal>fattable</literal>:

<programlisting>
TRUNCATE TABLE bigtable, fattable;
</programlisting>
  </para>

  <para>
   Truncate the table <literal>othertable</literal>, and cascade to any tables
   that are referencing <literal>othertable</literal> via foreign-key
   constraints:

<programlisting>
TRUNCATE othertable CASCADE;
</programlisting>
  </para>
 </refsect1>

 <refsect1>
  <title>Compatibility</title>

  <para>
   There is no <command>TRUNCATE</command> command in the SQL standard.
  </para>
 </refsect1>
</refentry>
