Re: Feature request for postgresSQL - Mailing list pgsql-general
From | Bruce Momjian |
---|---|
Subject | Re: Feature request for postgresSQL |
Date | |
Msg-id | 200303171637.h2HGbXp05553@candle.pha.pa.us Whole thread Raw |
Responses |
Re: Feature request for postgresSQL
|
List | pgsql-general |
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
pgsql-general by date: