From: | Mark Stosberg <mark(at)summersault(dot)com> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Best practice for long-lived journal tables: bigint or recycling IDs? |
Date: | 2008-07-09 12:49:51 |
Message-ID: | 20080709084951.03ef9b6f@summersault.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
> > > 3. Deal with wraparound by ensuring that the applications behave sanely
> >
> > Wrap-around?
> >
> > Exceeding the max size of "int" looks more like a brick wall than wrap-around to me:
> >
> > insert into t values (2147483648);
> > ERROR: integer out of range
>
> Hmm, you can alter the sequence so that it wraps around at the point it
> reaches INT_MAX. So inserting this number would never actually happen.
Ah, that does look like the best solution. I'll confirm that will work for our cases.
Thanks!
Mark
> alvherre=# create table t (a serial);
> NOTICE: CREATE TABLE créera des séquences implicites « t_a_seq » pour la colonne serial « t.a »
> CREATE TABLE
> alvherre=# alter sequence t_a_seq maxvalue 2147483647;
> ALTER SEQUENCE
> alvherre=# alter sequence t_a_seq cycle;
> ALTER SEQUENCE
> alvherre=# select setval('t_a_seq', 2147483645);
> setval
> ------------
> 2147483645
> (1 ligne)
>
> alvherre=# insert into t default values;
> INSERT 0 1
> alvherre=# insert into t default values;
> INSERT 0 1
> alvherre=# insert into t default values;
> INSERT 0 1
> alvherre=# insert into t default values;
> INSERT 0 1
> alvherre=# insert into t default values;
> INSERT 0 1
> alvherre=# select * from t;
> a
> ------------
> 2147483646
> 2147483647
> 1
> 2
> 3
> (5 lignes)
From | Date | Subject | |
---|---|---|---|
Next Message | aldy | 2008-07-10 06:57:15 | i can't connect after some periode |
Previous Message | Ivan Sergio Borgonovo | 2008-07-09 09:45:50 | selecting N record for each group |