Hello

SEQUENCE isn't datatype. It is a database object. Simple object, that
can to generate unique integer numbers.

SERIAL is a fictive datatype. It can create a own SEQUENCE object and
can create a reference on this object.

pavel=# create sequence aaaa;
CREATE SEQUENCE
Time: 461.883 ms
pavel=# select nextval('aaaa');
 nextval
─────────
       1
(1 row)

Time: 78.413 ms
pavel=# select nextval('aaaa');
 nextval
─────────
       2
(1 row)

Time: 12.761 ms

pavel=# create table ggg(a serial);
NOTICE:  CREATE TABLE will create implicit sequence "ggg_a_seq" for
serial column "ggg.a"
CREATE TABLE
Time: 91.866 ms
pavel=# \d ggg
                         Table "public.ggg"
 Column │  Type   │                    Modifiers
────────┼─────────┼─────────────────────────────────────────────────
 a      │ integer │ not null default nextval('ggg_a_seq'::regclass)

pavel=#

regards

Pavel Stehule

2011/2/1 Adarsh Sharma <adarsh.sha...@orkash.com>:
> Dear all,
>
> I am not able to distinct these two datatypes ( Serial and Sequence ) in
> Postgresql which resembles like auto-increment in Mysql.
>
> Which one gets priority and When ?
>
> The only thing I am able to find is to use SERIAL because if a drop table
> occurs , still SEQUENCE memory is not freed, its garbage remains.
>
> However if we define a SERIAL column in a table , implicitly it makes a
> sequence.
>
> Could anyone Please describe me the difference and Which to Use When ?
>
>
> Thanks & Regards
>
> Adarsh Sharma
>
> --
> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to