mirror of
https://github.com/postgres/postgres.git
synced 2025-12-21 05:21:08 +03:00
144 lines
3.6 KiB
Plaintext
144 lines
3.6 KiB
Plaintext
<!--
|
|
$PostgreSQL: pgsql/doc/src/sgml/ref/truncate.sgml,v 1.20 2006/03/03 03:30:52 tgl 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 —
|
|
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>
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"../reference.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:"/usr/lib/sgml/catalog"
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
-->
|