<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/create_server.sgml,v 1.6 2009/09/19 10:23:27 petere Exp $
PostgreSQL documentation
-->

<refentry id="SQL-CREATESERVER">
 <refmeta>
  <refentrytitle id="sql-createserver-title">CREATE SERVER</refentrytitle>
  <manvolnum>7</manvolnum>
  <refmiscinfo>SQL - Language Statements</refmiscinfo>
 </refmeta>

 <refnamediv>
  <refname>CREATE SERVER</refname>
  <refpurpose>define a new foreign server</refpurpose>
 </refnamediv>

 <indexterm zone="sql-createserver">
  <primary>CREATE SERVER</primary>
 </indexterm>

 <refsynopsisdiv>
<synopsis>
CREATE SERVER <replaceable class="parameter">server_name</replaceable> [ TYPE '<replaceable class="parameter">server_type</replaceable>' ] [ VERSION '<replaceable class="parameter">server_version</replaceable>' ]
    FOREIGN DATA WRAPPER <replaceable class="parameter">fdw_name</replaceable>
    [ OPTIONS ( <replaceable class="PARAMETER">option</replaceable> '<replaceable class="PARAMETER">value</replaceable>' [, ... ] ) ]
</synopsis>
 </refsynopsisdiv>

 <refsect1>
  <title>Description</title>

  <para>
   <command>CREATE SERVER</command> defines a new foreign server.  The
   user who defines the server becomes its owner.
  </para>

  <para>
   A foreign server typically encapsulates connection information that
   a foreign-data wrapper uses to access an external data resource.
   Additional user-specific connection information may be specified by
   means of user mappings.
  </para>

  <para>
   The server name must be unique within the database.
  </para>

  <para>
   Creating a server requires <literal>USAGE</> privilege on the
   foreign-data wrapper being used.
  </para>
 </refsect1>

 <refsect1>
  <title>Parameters</title>

  <variablelist>
   <varlistentry>
    <term><replaceable class="parameter">server_name</replaceable></term>
    <listitem>
     <para>
      The name of the foreign server to be created.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><replaceable class="parameter">server_type</replaceable></term>
    <listitem>
     <para>
      Optional server type.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><replaceable class="parameter">server_version</replaceable></term>
    <listitem>
     <para>
      Optional server version.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><replaceable class="parameter">fdw_name</replaceable></term>
    <listitem>
     <para>
      The name of the foreign-data wrapper that manages the server.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><literal>OPTIONS ( <replaceable class="PARAMETER">option</replaceable> '<replaceable class="PARAMETER">value</replaceable>' [, ... ] )</literal></term>
    <listitem>
     <para>
      This clause specifies the options for the server.  The options
      typically define the connection details of the server, but the
      actual names and values are dependent on the server's
      foreign-data wrapper.
     </para>
    </listitem>
   </varlistentry>
  </variablelist>
 </refsect1>

 <refsect1>
  <title>Notes</title>

  <para>
   When using the <application>dblink</application> module
   (see <xref linkend="dblink">), the foreign server name can be used
   as an argument of the <xref linkend="contrib-dblink-connect">
   function to indicate the connection parameters.  See also there for
   more examples.  It is necessary to have
   the <literal>USAGE</literal> privilege on the foreign server to be
   able to use it in this way.
  </para>
 </refsect1>

 <refsect1>
  <title>Examples</title>

  <para>
   Create a server <literal>foo</> that uses the built-in foreign-data
   wrapper <literal>default</>:
<programlisting>
CREATE SERVER foo FOREIGN DATA WRAPPER "default";
</programlisting>
  </para>

  <para>
   Create a server <literal>myserver</> that uses the
   foreign-data wrapper <literal>pgsql</>:
<programlisting>
CREATE SERVER myserver FOREIGN DATA WRAPPER pgsql OPTIONS (host 'foo', dbname 'foodb', port '5432');
</programlisting>
  </para>
 </refsect1>

 <refsect1>
  <title>Compatibility</title>

  <para>
   <command>CREATE SERVER</command> conforms to ISO/IEC 9075-9 (SQL/MED).
  </para>
 </refsect1>

 <refsect1>
  <title>See Also</title>

  <simplelist type="inline">
   <member><xref linkend="sql-alterserver" endterm="sql-alterserver-title"></member>
   <member><xref linkend="sql-dropserver" endterm="sql-dropserver-title"></member>
   <member><xref linkend="sql-createforeigndatawrapper" endterm="sql-createforeigndatawrapper-title"></member>
   <member><xref linkend="sql-createusermapping" endterm="sql-createusermapping-title"></member>
  </simplelist>
 </refsect1>

</refentry>
