I am CC'ing the general list with this feature request.
You could easily write a new data type like those in /contrib for this
functionality. You are the first to ask for this feature.
---------------------------------------------------------------------------
Tim Hawkins wrote:
> I'm not sure this the correct mechanism for requesting a feature.
>
>
>
> I would like to see the introduction of a GUID datatype which stores a
> standard 16byte DCE UUID, plus a function for creating UUID's for
> initialisation.
>
>
>
> We use GUID's exclusively instead of sequences in all of our system
> implementations as they allow records to be moved freely between
> database servers,
>
> Don't not suffer from loss of sequence position, and can be generated
> without any need for each process to be critically locked. We currently
> have to simulate
>
> Them using an application function and a 32 char field on databases like
> postgreSQL that do not support them directly.
>
>
>
> Support for this datatype would greatly assist those of us moving from
> SQL Server, and add a valuable function to postgreSQL itself.
>
>
>
> >From the sql server 2000 docs
>
>
>
> Creates a unique value of type uniqueidentifier.
>
>
> Syntax
>
>
> NEWID ( )
>
>
> Return Types
>
>
> uniqueidentifier
>
>
> Examples
>
>
> A. Use the NEWID function with a variable
>
>
> This example uses NEWID to assign a value to a variable declared as the
> uniqueidentifier data type. The value of the uniqueidentifier data type
> variable is printed before the value is tested.
>
> -- Creating a local variable with DECLARE/SET syntax.
> DECLARE @myid uniqueidentifier
> SET @myid = NEWID()
> PRINT 'Value of @myid is: '+ CONVERT(varchar(255), @myid)
>
> Here is the result set:
>
> Value of @myid is: 6F9619FF-8B86-D011-B42D-00C04FC964FF
>
>
>
> Note The value returned by NEWID is different for each computer. This
> number is shown only for illustration.
>
>
> B. Use NEWID in a CREATE TABLE statement
>
>
> This example creates cust table with a uniqueidentifier data type, and
> uses NEWID to fill the table with a default value. In assigning the
> default value of NEWID(), each new and existing row has a unique value
> for the cust_id column.
>
> -- Creating a table using NEWID for uniqueidentifier data type.
> CREATE TABLE cust
> (
> cust_id uniqueidentifier NOT NULL
> DEFAULT newid(),
> company varchar(30) NOT NULL,
> contact_name varchar(60) NOT NULL,
> address varchar(30) NOT NULL,
> city varchar(30) NOT NULL,
> state_province varchar(10) NULL,
> postal_code varchar(10) NOT NULL,
> country varchar(20) NOT NULL,
> telephone varchar(15) NOT NULL,
> fax varchar(15) NULL
> )
> GO
> -- Inserting data into cust table.
> INSERT cust
> (cust_id, company, contact_name, address, city, state_province,
> postal_code, country, telephone, fax)
> VALUES
> (newid(), 'Wartian Herkku', 'Pirkko Koskitalo', 'Torikatu 38', 'Oulu',
> NULL,
> '90110', 'Finland', '981-443655', '981-443655')
> INSERT cust
> (cust_id, company, contact_name, address, city, state_province,
> postal_code, country, telephone, fax)
> VALUES
> (newid(), 'Wellington Importadora', 'Paula Parente', 'Rua do Mercado,
> 12', 'Resende', 'SP',
> '08737-363', 'Brazil', '(14) 555-8122', '')
> INSERT cust
> (cust_id, company, contact_name, address, city, state_province,
> postal_code, country, telephone, fax)
> VALUES
> (newid(), 'Cactus Comidas para Ilevar', 'Patricio Simpson', 'Cerrito
> 333', 'Buenos Aires', NULL,
> '1010', 'Argentina', '(1) 135-5555', '(1) 135-4892')
> INSERT cust
> (cust_id, company, contact_name, address, city, state_province,
> postal_code, country, telephone, fax)
> VALUES
> (newid(), 'Ernst Handel', 'Roland Mendel', 'Kirchgasse 6', 'Graz', NULL,
> '8010', 'Austria', '7675-3425', '7675-3426')
> INSERT cust
> (cust_id, company, contact_name, address, city, state_province,
> postal_code, country, telephone, fax)
> VALUES
> (newid(), 'Maison Dewey', 'Catherine Dewey', 'Rue Joseph-Bens 532',
> 'Bruxelles', NULL,
> 'B-1180', 'Belgium', '(02) 201 24 67', '(02) 201 24 68')
> GO
>
> C. Use uniqueidentifier and variable assignment
>
>
> This example declares a local variable called @myid as a variable of
> uniqueidentifier data type. Then, the variable is assigned a value using
> the SET statement.
>
> DECLARE @myid uniqueidentifier
> SET @myid = 'A972C577-DFB0-064E-1189-0154C99310DAAC12'
> GO
>
>
>
>
>
>
>
>
>
>
>
[ image/gif is not supported, skipping... ]
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073