Home Explore Blog CI



postgresql

doc/src/sgml/ref/alter_schema.sgml
0ad55087d1af8e424ddb7ab708ccbe84e261a39dc631a51700000003000009b4
<!--
doc/src/sgml/ref/alter_schema.sgml
PostgreSQL documentation
-->

<refentry id="sql-alterschema">
 <indexterm zone="sql-alterschema">
  <primary>ALTER SCHEMA</primary>
 </indexterm>

 <refmeta>
  <refentrytitle>ALTER SCHEMA</refentrytitle>
  <manvolnum>7</manvolnum>
  <refmiscinfo>SQL - Language Statements</refmiscinfo>
 </refmeta>

 <refnamediv>
  <refname>ALTER SCHEMA</refname>
  <refpurpose>change the definition of a schema</refpurpose>
 </refnamediv>

 <refsynopsisdiv>
<synopsis>
ALTER SCHEMA <replaceable>name</replaceable> RENAME TO <replaceable>new_name</replaceable>
ALTER SCHEMA <replaceable>name</replaceable> OWNER TO { <replaceable>new_owner</replaceable> | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
</synopsis>
 </refsynopsisdiv>

 <refsect1>
  <title>Description</title>

  <para>
   <command>ALTER SCHEMA</command> changes the definition of a schema.
  </para>

  <para>
   You must own the schema to use <command>ALTER SCHEMA</command>.
   To rename a schema you must also have the
   <literal>CREATE</literal> privilege for the database.
   To alter the owner, you must be able to <literal>SET ROLE</literal> to the
   new owning role, and that role must have the
   <literal>CREATE</literal> privilege for the database.
   (Note that superusers have all these privileges automatically.)
  </para>
 </refsect1>

 <refsect1>
  <title>Parameters</title>

  <variablelist>
   <varlistentry>
    <term><replaceable>name</replaceable></term>
    <listitem>
     <para>
      The name of an existing schema.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><replaceable>new_name</replaceable></term>
    <listitem>
     <para>
      The new name of the schema.  The new name cannot
      begin with <literal>pg_</literal>, as such names
      are reserved for system schemas.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><replaceable class="parameter">new_owner</replaceable></term>
    <listitem>
     <para>
      The new owner of the schema.
     </para>
    </listitem>
   </varlistentry>
  </variablelist>
 </refsect1>

 <refsect1>
  <title>Compatibility</title>

  <para>
   There is no <command>ALTER SCHEMA</command> statement in the SQL
   standard.
  </para>
 </refsect1>

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

  <simplelist type="inline">
   <member><xref linkend="sql-createschema"/></member>
   <member><xref linkend="sql-dropschema"/></member>
  </simplelist>
 </refsect1>

</refentry>

Chunks
df2fa879 (1st chunk of `doc/src/sgml/ref/alter_schema.sgml`)
Title: ALTER SCHEMA: Change Schema Definition
Summary
The ALTER SCHEMA command is used to modify the definition of a schema. You can rename a schema or change its owner. To use ALTER SCHEMA, you must own the schema. To rename a schema, you also need CREATE privilege for the database. To change the owner, you must be able to SET ROLE to the new owner and that role needs CREATE privilege for the database. The command is not part of the SQL standard. Related commands include CREATE SCHEMA and DROP SCHEMA.