<refentrytitle>CREATE-TABLE</refentrytitle>
</refmeta>
<refnamediv>
- <refname><emphasis>Function</emphasis> <emphasis role="bold">CREATE-TABLE</emphasis></refname>
+ <refname>CREATE-TABLE</refname>
<refpurpose>Create a database table.</refpurpose>
<refclass>Function</refclass>
</refnamediv>
=>
(table-exists-p [foo])
=> T
+
+(create-table [foo] '(([bar] integer :not-null :unique :primary-key)
+ ([baz] string :not-null :unique)))
+=>
+(table-exists-p [foo])
+=> T
+
+(create-table [foo] '(([bar] integer :not-null) ([baz] string :not-null))
+ :constraints '("UNIQUE (bar,baz)" "PRIMARY KEY (bar)"))
+=>
+(table-exists-p [foo])
+=> T
</screen>
</refsect1>
<refsect1>
<refentrytitle>DROP-TABLE</refentrytitle>
</refmeta>
<refnamediv>
- <refname><emphasis>Function</emphasis> <emphasis role="bold">DROP-TABLE</emphasis></refname>
+ <refname>DROP-TABLE</refname>
<refpurpose>Drop a database table.</refpurpose>
<refclass>Function</refclass>
</refnamediv>
<refentrytitle>LIST-TABLES</refentrytitle>
</refmeta>
<refnamediv>
- <refname><emphasis>Function</emphasis> <emphasis role="bold">LIST-TABLES</emphasis></refname>
+ <refname>LIST-TABLES</refname>
<refpurpose>Returns a list of database tables.</refpurpose>
<refclass>Function</refclass>
</refnamediv>
<refentrytitle>TABLE-EXISTS-P</refentrytitle>
</refmeta>
<refnamediv>
- <refname><emphasis>Function</emphasis> <emphasis role="bold">TABLE-EXISTS-P</emphasis></refname>
+ <refname>TABLE-EXISTS-P</refname>
<refpurpose>Tests for the existence of a database table.</refpurpose>
<refclass>Function</refclass>
</refnamediv>
<refentrytitle>CREATE-VIEW</refentrytitle>
</refmeta>
<refnamediv>
- <refname><emphasis>Function</emphasis> <emphasis role="bold">CREATE-VIEW</emphasis></refname>
+ <refname>CREATE-VIEW</refname>
<refpurpose>Create a database view.</refpurpose>
<refclass>Function</refclass>
</refnamediv>
("Konstantin" "Chernenko" "chernenko@soviet.org")
("Mikhail" "Gorbachev" "gorbachev@soviet.org")
("Boris" "Yeltsin" "yeltsin@soviet.org")
- ("Vladamir" "Putin" "putin@soviet.org")),
+ ("Vladimir" "Putin" "putin@soviet.org")),
("first_name" "last_name" "email")
</screen>
</refsect1>
<refentrytitle>DROP-VIEW</refentrytitle>
</refmeta>
<refnamediv>
- <refname><emphasis>Function</emphasis> <emphasis role="bold">DROP-VIEW</emphasis></refname>
+ <refname>DROP-VIEW</refname>
<refpurpose>Drops a database view.</refpurpose>
<refclass>Function</refclass>
</refnamediv>
<refentrytitle>LIST-VIEWS</refentrytitle>
</refmeta>
<refnamediv>
- <refname><emphasis>Function</emphasis> <emphasis role="bold">LIST-VIEWS</emphasis></refname>
+ <refname>LIST-VIEWS</refname>
<refpurpose>Returns a list of database views.</refpurpose>
<refclass>Function</refclass>
</refnamediv>
<refentrytitle>VIEW-EXISTS-P</refentrytitle>
</refmeta>
<refnamediv>
- <refname><emphasis>Function</emphasis> <emphasis role="bold">VIEW-EXISTS-P</emphasis></refname>
+ <refname>VIEW-EXISTS-P</refname>
<refpurpose>Tests for the existence of a database view.</refpurpose>
<refclass>Function</refclass>
</refnamediv>
<refentrytitle>CREATE-INDEX</refentrytitle>
</refmeta>
<refnamediv>
- <refname><emphasis>Function</emphasis> <emphasis role="bold">CREATE-INDEX</emphasis></refname>
+ <refname>CREATE-INDEX</refname>
<refpurpose>Create a database index.</refpurpose>
<refclass>Function</refclass>
</refnamediv>
<refentrytitle>DROP-INDEX</refentrytitle>
</refmeta>
<refnamediv>
- <refname><emphasis>Function</emphasis> <emphasis role="bold">DROP-INDEX</emphasis></refname>
+ <refname>DROP-INDEX</refname>
<refpurpose>Drop a database index.</refpurpose>
<refclass>Function</refclass>
</refnamediv>
<refentrytitle>LIST-INDEXES</refentrytitle>
</refmeta>
<refnamediv>
- <refname><emphasis>Function</emphasis> <emphasis role="bold">LIST-INDEXES</emphasis></refname>
+ <refname>LIST-INDEXES</refname>
<refpurpose>Returns a list of database indexes.</refpurpose>
<refclass>Function</refclass>
</refnamediv>
<refentrytitle>INDEX-EXISTS-P</refentrytitle>
</refmeta>
<refnamediv>
- <refname><emphasis>Function</emphasis> <emphasis role="bold">INDEX-EXISTS-P</emphasis></refname>
+ <refname>INDEX-EXISTS-</refname>
<refpurpose>Tests for the existence of a database index.</refpurpose>
<refclass>Function</refclass>
</refnamediv>
<refentrytitle>ATTRIBUTE-TYPE</refentrytitle>
</refmeta>
<refnamediv>
- <refname><emphasis>Function</emphasis> <emphasis role="bold">ATTRIBUTE-TYPE</emphasis></refname>
+ <refname>ATTRIBUTE-TYPE</refname>
<refpurpose>Returns the type of the supplied attribute.</refpurpose>
<refclass>Function</refclass>
</refnamediv>
<refentrytitle>LIST-ATTRIBUTE-TYPES</refentrytitle>
</refmeta>
<refnamediv>
- <refname><emphasis>Function</emphasis> <emphasis role="bold">LIST-ATTRIBUTE-TYPES</emphasis></refname>
+ <refname>LIST-ATTRIBUTE-TYPES</refname>
<refpurpose>Returns information about the attribute types of a table.</refpurpose>
<refclass>Function</refclass>
</refnamediv>
<refentrytitle>LIST-ATTRIBUTES</refentrytitle>
</refmeta>
<refnamediv>
- <refname><emphasis>Function</emphasis> <emphasis role="bold">LIST-ATTRIBUTES</emphasis></refname>
+ <refname>LIST-ATTRIBUTES</refname>
<refpurpose>Returns the attributes of a table as a list.</refpurpose>
<refclass>Function</refclass>
</refnamediv>
<refentrytitle>CREATE-SEQUENCE</refentrytitle>
</refmeta>
<refnamediv>
- <refname><emphasis>Function</emphasis> <emphasis role="bold">CREATE-SEQUENCE</emphasis></refname>
+ <refname>CREATE-SEQUENCE</refname>
<refpurpose>Create a database sequence.</refpurpose>
<refclass>Function</refclass>
</refnamediv>
<refentrytitle>DROP-SEQUENCE</refentrytitle>
</refmeta>
<refnamediv>
- <refname><emphasis>Function</emphasis> <emphasis role="bold">DROP-SEQUENCE</emphasis></refname>
+ <refname>DROP-SEQUENCE</refname>
<refpurpose>Drop a database sequence.</refpurpose>
<refclass>Function</refclass>
</refnamediv>
<refentrytitle>LIST-SEQUENCES</refentrytitle>
</refmeta>
<refnamediv>
- <refname><emphasis>Function</emphasis> <emphasis role="bold">LIST-SEQUENCES</emphasis></refname>
+ <refname>LIST-SEQUENCES</refname>
<refpurpose>Returns a list of database sequences.</refpurpose>
<refclass>Function</refclass>
</refnamediv>
<refentrytitle>SEQUENCE-EXISTS-P</refentrytitle>
</refmeta>
<refnamediv>
- <refname><emphasis>Function</emphasis> <emphasis role="bold">SEQUENCE-EXISTS-P</emphasis></refname>
+ <refname>SEQUENCE-EXISTS-P</refname>
<refpurpose>Tests for the existence of a database sequence.</refpurpose>
<refclass>Function</refclass>
</refnamediv>
<refentrytitle>SEQUENCE-LAST</refentrytitle>
</refmeta>
<refnamediv>
- <refname><emphasis>Function</emphasis> <emphasis role="bold">SEQUENCE-LAST</emphasis></refname>
+ <refname>SEQUENCE-LAST</refname>
<refpurpose>Return the last element in a database sequence.</refpurpose>
<refclass>Function</refclass>
</refnamediv>
<refentrytitle>SEQUENCE-NEXT</refentrytitle>
</refmeta>
<refnamediv>
- <refname><emphasis>Function</emphasis> <emphasis role="bold">SEQUENCE-NEXT</emphasis></refname>
+ <refname>SEQUENCE-NEXT</refname>
<refpurpose>Increment the value of a database sequence.</refpurpose>
<refclass>Function</refclass>
</refnamediv>
<refentrytitle>SET-SEQUENCE-POSITION</refentrytitle>
</refmeta>
<refnamediv>
- <refname><emphasis>Function</emphasis> <emphasis role="bold">SET-SEQUENCE-POSITION</emphasis></refname>
+ <refname>SET-SEQUENCE-POSITION</refname>
<refpurpose>Sets the position of a database sequence.</refpurpose>
<refclass>Function</refclass>
</refnamediv>
</refsect1>
</refentry>
+ <refentry id="truncate-database">
+ <refmeta>
+ <refentrytitle>TRUNCATE-DATABASE</refentrytitle>
+ </refmeta>
+ <refnamediv>
+ <refname>TRUNCATE-DATABASE</refname>
+ <refpurpose>Drop all tables, views, indexes and sequences in a database.</refpurpose>
+ <refclass>Function</refclass>
+ </refnamediv>
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>
+ <function>truncate-database</function> &key <replaceable>database</replaceable> => <returnvalue></returnvalue></synopsis>
+ </refsect1>
+ <refsect1>
+ <title>Arguments and Values</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>database</parameter></term>
+ <listitem>
+ <para>A
+ <glossterm linkend="gloss-database-object">database
+ object</glossterm>. This will default to the value
+ of <symbol>*default-database*</symbol>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Drop all tables, views, indexes and sequences in
+ <parameter>database</parameter> which defaults to
+ <symbol>*default-database*</symbol>.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Examples</title>
+ <screen>
+(list-tables)
+=> ("type_table" "type_bigint" "employee" "company" "addr" "ea_join" "big")
+(list-indexes)
+=> ("employeepk" "companypk" "addrpk")
+(list-views)
+=> ("lenins_group")
+(list-sequences)
+=> ("foo" "bar")
+(truncate-database)
+=>
+(list-tables)
+=> NIL
+(list-indexes)
+=> NIL
+(list-views)
+=> NIL
+(list-sequences)
+=> NIL
+ </screen>
+ </refsect1>
+ <refsect1>
+ <title>Side Effects</title>
+ <para>
+ Modifications are made to the underlying database.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Affected by</title>
+ <para>
+ None.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Exceptional Situations</title>
+ <para>
+ Signals an error of type <symbol>sql-database-error</symbol> if
+ <parameter>database</parameter> is not a database object.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <simplelist>
+ <member><link linkend="drop-table"><function>drop-table</function></link></member>
+ <member><link linkend="drop-view"><function>drop-view</function></link></member>
+ <member><link linkend="drop-index"><function>drop-index</function></link></member>
+ <member><link linkend="drop-sequence"><function>drop-sequence</function></link></member>
+ </simplelist>
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Notes</title>
+ <para>
+ <function>truncate-database</function> is a &clsql; extension.
+ </para>
+ </refsect1>
+ </refentry>
+
</reference>