|
|
|
@ -1,4 +1,4 @@ |
|
|
|
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/datatype.sgml,v 1.196 2007/04/17 17:30:34 tgl Exp $ --> |
|
|
|
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/datatype.sgml,v 1.197 2007/04/20 21:51:46 petere Exp $ --> |
|
|
|
|
|
|
|
|
|
<chapter id="datatype"> |
|
|
|
|
<title id="datatype-title">Data Types</title> |
|
|
|
@ -234,6 +234,12 @@ |
|
|
|
|
<entry>date and time, including time zone</entry> |
|
|
|
|
</row> |
|
|
|
|
|
|
|
|
|
<row> |
|
|
|
|
<entry><type>uuid</type></entry> |
|
|
|
|
<entry></entry> |
|
|
|
|
<entry>universally unique identifier</entry> |
|
|
|
|
</row> |
|
|
|
|
|
|
|
|
|
<row> |
|
|
|
|
<entry><type>xml</type></entry> |
|
|
|
|
<entry></entry> |
|
|
|
@ -3199,6 +3205,49 @@ SELECT * FROM test; |
|
|
|
|
</para> |
|
|
|
|
</sect1> |
|
|
|
|
|
|
|
|
|
<sect1 id="datatype-uuid"> |
|
|
|
|
<title><acronym>UUID</acronym> Type</title> |
|
|
|
|
|
|
|
|
|
<indexterm zone="datatype-xml"> |
|
|
|
|
<primary>UUID</primary> |
|
|
|
|
</indexterm> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
The data type <type>uuid</type> stores Universally Unique |
|
|
|
|
Identifiers (UUID) as per RFC 4122, ISO/IEC 9834-8:2005, and |
|
|
|
|
related standards. (Some systems refer to this data type as |
|
|
|
|
globally unique |
|
|
|
|
identifier/GUID<indexterm><primary>GUID</primary></indexterm> |
|
|
|
|
instead.) Such an identifier is a 128-bit quantity that is |
|
|
|
|
generated by a suitable algorithm so that it is very unlikely to |
|
|
|
|
be generated by anyone else in the known universe using the same |
|
|
|
|
algorithm. Therefore, for distributed systems, these identifiers |
|
|
|
|
provide a better uniqueness guarantee than that which can be |
|
|
|
|
achieved using sequence generators, which are only unique within a |
|
|
|
|
single database. |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
A UUID is written as a sequence of lower-case hexadecimal digits, |
|
|
|
|
in several groups separated by hyphens, specifically a group of 8 |
|
|
|
|
digits followed by three groups of 4 digits followed by a group of |
|
|
|
|
12 digits, for a total of 32 digits representing the 128 bits. An |
|
|
|
|
example of a UUID in this standard form is: |
|
|
|
|
<programlisting> |
|
|
|
|
a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11 |
|
|
|
|
</programlisting> |
|
|
|
|
PostgreSQL also accepts the following alternative forms for input: |
|
|
|
|
use of upper-case digits, the standard format surrounded by |
|
|
|
|
braces, and omitting the hyphens. Examples are: |
|
|
|
|
<programlisting> |
|
|
|
|
A0EEBC99-9C0B-4EF8-BB6D-6BB9BD380A11 |
|
|
|
|
{a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11} |
|
|
|
|
a0eebc999c0b4ef8bb6d6bb9bd380a11 |
|
|
|
|
</programlisting> |
|
|
|
|
Output is always in the standard form. |
|
|
|
|
</para> |
|
|
|
|
</sect1> |
|
|
|
|
|
|
|
|
|
<sect1 id="datatype-xml"> |
|
|
|
|
<title><acronym>XML</> Type</title> |
|
|
|
|
|
|
|
|
|