Thread: RE: [SQL] Autogenerated Unique Index

RE: [SQL] Autogenerated Unique Index

From
Andrzej Mazurkiewicz
Date:
Sorry I have misunderstood your question. I automatically creates primary
(it is more than unique) INDEX.
I include an example from Postgres Users Manual - CREATE SERIAL section:

CREATE SEQUENCE serial START 101; 

Select the next number from this sequence 

SELECT NEXTVAL ('serial');   
nextval
-------   114  

Use this sequence in an INSERT: 

INSERT INTO distributors VALUES (NEXTVAL('serial'),'nothing');  

Set the sequence value after a COPY FROM: 
   CREATE FUNCTION distributors_id_max() RETURNS INT4   AS 'SELECT max(id) FROM distributors'    LANGUAGE 'sql';
BEGIN;  COPY distributors FROM 'input_file';   SELECT setval('serial', distributors_id_max());   END;  
 

I hope it wiull help.
Regards,
Andrzej Mazurkiewicz

andrzej@mazurkiewicz.org

www.mazurkiewicz.org




> -----Original Message-----
> From:    Antonio W. Lagnada [SMTP:alagnada@lsil.com]
> Sent:    7 marca 2000 16:05
> To:    Andrzej Mazurkiewicz
> Cc:    Pgsql-sql
> Subject:    Re: [SQL] Autogenerated Unique Index
> 
> Hi Andrzej,
> 
> Does this mean that everytime I create a new record on the table, the
> field
> "B" will be automatically incremented?
> 
> - Antonio
> 
> Andrzej Mazurkiewicz wrote:
> 
> > cfmg_adm=> CREATE TABLE A (
> > cfmg_adm(>        B int NOT NULL,
> > cfmg_adm(>        C char(5),
> > cfmg_adm(> PRIMARY KEY (B)
> > cfmg_adm(> );
> > NOTICE:  CREATE TABLE/PRIMARY KEY will create implicit index 'a_pkey'
> for
> > table
> > 'a'
> > CREATE
> > cfmg_adm=>
> > Regards,
> > Andrzej Mazurkiewicz
> >
> > > -----Original Message-----
> > > From: Antonio W. Lagnada [SMTP:alagnada@lsil.com]
> > > Sent: 7 marca 2000 14:41
> > > To:   Pgsql-sql
> > > Subject:      [SQL] Autogenerated Unique Index
> > >
> > > Can someone give me a step-by-step instructions on how to generate a
> > > unique autogenerated index in PostgreSQL?
> > >
> > > --
> > > Antonio W. Lagnada
> > >
> > >
> > > 952.921.8533
> > > alagnada@lsil.com_NOSPAM
> > > Remove the _NOSPAM for
> > > the actual email address
> > >  << File: Card for Antonio W. Lagnada >>
> 
> --
> Antonio W. Lagnada
> 
> 952.921.8533
> alagnada@lsil.com_NOSPAM
> Remove the _NOSPAM for
> the actual email address
>  << File: Card for Antonio W. Lagnada >> 


Re: [SQL] Autogenerated Unique Index

From
"Antonio W. Lagnada"
Date:
Hi Andrzej,

>From reading the Users Guide, I came up with this example

# To create the table with the auto-incrementing index
CREATE TABLE customer ( id SERIAL, firstname VARCHAR(30), lastname VARCHAR(30)
);

# To insert
INSERT INTO customer VALUES ( NEXTVAL('id'),'John','Doe');
INSERT INTO customer VALUES ( NEXTVAL('id'),'Jane','Doe');


# This should create a record:

id   firstname   lastname
--   ---------   --------
1    John        Doe
2    Jane        Doe

Am I correcto to assume all this?

-- Antonio

Andrzej Mazurkiewicz wrote:

> Sorry I have misunderstood your question. I automatically creates primary
> (it is more than unique) INDEX.
> I include an example from Postgres Users Manual - CREATE SERIAL section:
>
> CREATE SEQUENCE serial START 101;
>
>
> Select the next number from this sequence
>
> SELECT NEXTVAL ('serial');
>
> nextval
> -------
>     114
>
>
> Use this sequence in an INSERT:
>
> INSERT INTO distributors VALUES (NEXTVAL('serial'),'nothing');
>
>
> Set the sequence value after a COPY FROM:
>
>     CREATE FUNCTION distributors_id_max() RETURNS INT4
>     AS 'SELECT max(id) FROM distributors'
>     LANGUAGE 'sql';
>     BEGIN;
>     COPY distributors FROM 'input_file';
>     SELECT setval('serial', distributors_id_max());
>     END;
>
>
> I hope it wiull help.
> Regards,
> Andrzej Mazurkiewicz
>
> andrzej@mazurkiewicz.org
>
> www.mazurkiewicz.org
>
> > -----Original Message-----
> > From: Antonio W. Lagnada [SMTP:alagnada@lsil.com]
> > Sent: 7 marca 2000 16:05
> > To:   Andrzej Mazurkiewicz
> > Cc:   Pgsql-sql
> > Subject:      Re: [SQL] Autogenerated Unique Index
> >
> > Hi Andrzej,
> >
> > Does this mean that everytime I create a new record on the table, the
> > field
> > "B" will be automatically incremented?
> >
> > - Antonio
> >
> > Andrzej Mazurkiewicz wrote:
> >
> > > cfmg_adm=> CREATE TABLE A (
> > > cfmg_adm(>        B int NOT NULL,
> > > cfmg_adm(>        C char(5),
> > > cfmg_adm(> PRIMARY KEY (B)
> > > cfmg_adm(> );
> > > NOTICE:  CREATE TABLE/PRIMARY KEY will create implicit index 'a_pkey'
> > for
> > > table
> > > 'a'
> > > CREATE
> > > cfmg_adm=>
> > > Regards,
> > > Andrzej Mazurkiewicz
> > >
> > > > -----Original Message-----
> > > > From: Antonio W. Lagnada [SMTP:alagnada@lsil.com]
> > > > Sent: 7 marca 2000 14:41
> > > > To:   Pgsql-sql
> > > > Subject:      [SQL] Autogenerated Unique Index
> > > >
> > > > Can someone give me a step-by-step instructions on how to generate a
> > > > unique autogenerated index in PostgreSQL?
> > > >
> > > > --
> > > > Antonio W. Lagnada
> > > >
> > > >
> > > > 952.921.8533
> > > > alagnada@lsil.com_NOSPAM
> > > > Remove the _NOSPAM for
> > > > the actual email address
> > > >  << File: Card for Antonio W. Lagnada >>
> >
> > --
> > Antonio W. Lagnada
> >
> > 952.921.8533
> > alagnada@lsil.com_NOSPAM
> > Remove the _NOSPAM for
> > the actual email address
> >  << File: Card for Antonio W. Lagnada >>

--
Antonio W. Lagnada

952.921.8533
alagnada@lsil.com_NOSPAM
Remove the _NOSPAM for
the actual email address


Attachment