Home Explore Blog CI



postgresql

1st chunk of `doc/src/sgml/ref/alter_type.sgml`
de5372787a3bbd636a3206c5b9d591ec0d817a44993d0b9f0000000100000fa3
<!--
doc/src/sgml/ref/alter_type.sgml
PostgreSQL documentation
-->

<refentry id="sql-altertype">
 <indexterm zone="sql-altertype">
  <primary>ALTER TYPE</primary>
 </indexterm>

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

 <refnamediv>
  <refname>ALTER TYPE</refname>
  <refpurpose>
   change the definition of a type
  </refpurpose>
 </refnamediv>

 <refsynopsisdiv>
<synopsis>
ALTER TYPE <replaceable class="parameter">name</replaceable> OWNER TO { <replaceable class="parameter">new_owner</replaceable> | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER TYPE <replaceable class="parameter">name</replaceable> RENAME TO <replaceable class="parameter">new_name</replaceable>
ALTER TYPE <replaceable class="parameter">name</replaceable> SET SCHEMA <replaceable class="parameter">new_schema</replaceable>
ALTER TYPE <replaceable class="parameter">name</replaceable> RENAME ATTRIBUTE <replaceable class="parameter">attribute_name</replaceable> TO <replaceable class="parameter">new_attribute_name</replaceable> [ CASCADE | RESTRICT ]
ALTER TYPE <replaceable class="parameter">name</replaceable> <replaceable class="parameter">action</replaceable> [, ... ]
ALTER TYPE <replaceable class="parameter">name</replaceable> ADD VALUE [ IF NOT EXISTS ] <replaceable class="parameter">new_enum_value</replaceable> [ { BEFORE | AFTER } <replaceable class="parameter">neighbor_enum_value</replaceable> ]
ALTER TYPE <replaceable class="parameter">name</replaceable> RENAME VALUE <replaceable class="parameter">existing_enum_value</replaceable> TO <replaceable class="parameter">new_enum_value</replaceable>
ALTER TYPE <replaceable class="parameter">name</replaceable> SET ( <replaceable class="parameter">property</replaceable> = <replaceable class="parameter">value</replaceable> [, ... ] )

<phrase>where <replaceable class="parameter">action</replaceable> is one of:</phrase>

    ADD ATTRIBUTE <replaceable class="parameter">attribute_name</replaceable> <replaceable class="parameter">data_type</replaceable> [ COLLATE <replaceable class="parameter">collation</replaceable> ] [ CASCADE | RESTRICT ]
    DROP ATTRIBUTE [ IF EXISTS ] <replaceable class="parameter">attribute_name</replaceable> [ CASCADE | RESTRICT ]
    ALTER ATTRIBUTE <replaceable class="parameter">attribute_name</replaceable> [ SET DATA ] TYPE <replaceable class="parameter">data_type</replaceable> [ COLLATE <replaceable class="parameter">collation</replaceable> ] [ CASCADE | RESTRICT ]
</synopsis>
 </refsynopsisdiv>

 <refsect1>
  <title>Description</title>

  <para>
   <command>ALTER TYPE</command> changes the definition of an existing type.
   There are several subforms:

  <variablelist>
   <varlistentry>
    <term><literal>OWNER</literal></term>
    <listitem>
     <para>
      This form changes the owner of the type.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><literal>RENAME</literal></term>
    <listitem>
     <para>
      This form changes the name of the type.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><literal>SET SCHEMA</literal></term>
    <listitem>
     <para>
      This form moves the type into another schema.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><literal>RENAME ATTRIBUTE</literal></term>
    <listitem>
     <para>
      This form is only usable with composite types.
      It changes the name of an individual attribute of the type.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><literal>ADD ATTRIBUTE</literal></term>
    <listitem>
     <para>
      This form adds a new attribute to a composite type, using the same syntax as
      <link linkend="sql-createtype"><command>CREATE TYPE</command></link>.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><literal>DROP ATTRIBUTE [ IF EXISTS ]</literal></term>
    <listitem>
     <para>

Title: ALTER TYPE: Modifying Type Definitions
Summary
The SQL command `ALTER TYPE` is used to modify the definition of an existing type in a PostgreSQL database. It includes subforms to change the owner, rename the type, move the type to a different schema, rename an attribute (for composite types), add a new attribute to a composite type, and drop an attribute.