Обсуждение: How to increment by hand a sequence number.

Поиск
Список
Период
Сортировка

How to increment by hand a sequence number.

От
Valerio Santinelli
Дата:
I've exported a table from an existing MSAccess database to my
PostgreSQL db.
I use a serial ID on the table and now I'm getting errors when I add a
new entry in the table if i don't specify the ID by hand (which should
be placed automatically by the db  since it's a serial).

The exact error is this one:

    Cannot insert a duplicate key into a unique index.


I think I should set the "last_value" field in the sequence to my real
last value aon the ID field of the table, but Idon't know how to do it.
Is there anybody who can help me ?

Thanks

Valerio Santinelli
tanis@mediacom.it



Re: [GENERAL] How to increment by hand a sequence number.

От
Jeong Jae Ick:정재익:
Дата:
It maybe done with next syntax;
   drop sequence_name;
   create sequence sequence_name start start_no;

But, if you want to increment the sequence_no by one manually, then;
   select nextval('sequence_name');

==========ooOO /. .\ OOoo======================================
     Dept. of Neurosurgery         | http://advance.sarang.net
     Masan Military Hospital       | http://database.sarang.net
     Korea                         | advance@nownuri.net
                                   | advance@advance.sarang.net
 Hanil-Town 201-2007, Yangduk2-Dong| Phone: +82-551-299-2624
 Hwoiwon-Gu, Masan-Si, Kyungnam    | O.P. : +82-551-271-2318
============OOo./-\.oOO========================================

On Mon, 18 Jan 1999, Valerio Santinelli wrote:

> I've exported a table from an existing MSAccess database to my
> PostgreSQL db.
> I use a serial ID on the table and now I'm getting errors when I add a
> new entry in the table if i don't specify the ID by hand (which should
> be placed automatically by the db  since it's a serial).
>
> The exact error is this one:
>
>     Cannot insert a duplicate key into a unique index.
>
>
> I think I should set the "last_value" field in the sequence to my real
> last value aon the ID field of the table, but Idon't know how to do it.
> Is there anybody who can help me ?
>
> Thanks


Re: [GENERAL] How to increment by hand a sequence number.

От
Blashko Alexander
Дата:

On Mon, 18 Jan 1999, Valerio Santinelli wrote:

> I've exported a table from an existing MSAccess database to my
> PostgreSQL db.
> I use a serial ID on the table and now I'm getting errors when I add a
> new entry in the table if i don't specify the ID by hand (which should
> be placed automatically by the db  since it's a serial).
>
> The exact error is this one:
>
>     Cannot insert a duplicate key into a unique index.
>
>
> I think I should set the "last_value" field in the sequence to my real
> last value aon the ID field of the table, but Idon't know how to do it.
> Is there anybody who can help me ?
you can get "last_value":
select max(ID) from table
you can create sequence with option 'start last_value+1' ( see man ).
>
> Thanks
>
> Valerio Santinelli
> tanis@mediacom.it
>
>
>


Re: [GENERAL] How to increment by hand a sequence number.

От
Dustin Sallings
Дата:
On Mon, 18 Jan 1999, Valerio Santinelli wrote:

    select max(id) from table;

    will get you the max value, then you want to add one to that
number, and do this:

    select setval('sequence_name', newvalue);

# I've exported a table from an existing MSAccess database to my
# PostgreSQL db.
# I use a serial ID on the table and now I'm getting errors when I add a
# new entry in the table if i don't specify the ID by hand (which should
# be placed automatically by the db  since it's a serial).
#
# The exact error is this one:
#
#     Cannot insert a duplicate key into a unique index.
#
#
# I think I should set the "last_value" field in the sequence to my real
# last value aon the ID field of the table, but Idon't know how to do it.
# Is there anybody who can help me ?
#
# Thanks
#
# Valerio Santinelli
# tanis@mediacom.it
#
#
#
#

--
SA, beyond.com           My girlfriend asked me which one I like better.
pub  1024/3CAE01D5 1994/11/03 Dustin Sallings <dustin@spy.net>
|    Key fingerprint =  87 02 57 08 02 D0 DA D6  C8 0F 3E 65 51 98 D8 BE
L_______________________ I hope the answer won't upset her. ____________


Re: [GENERAL] How to increment by hand a sequence number.

От
"Jose' Soares"
Дата:
Valerio Santinelli wrote:
>
> I've exported a table from an existing MSAccess database to my
> PostgreSQL db.
> I use a serial ID on the table and now I'm getting errors when I add a
> new entry in the table if i don't specify the ID by hand (which should
> be placed automatically by the db  since it's a serial).
>
> The exact error is this one:
>
>     Cannot insert a duplicate key into a unique index.
>
> I think I should set the "last_value" field in the sequence to my real
> last value aon the ID field of the table, but Idon't know how to do it.
> Is there anybody who can help me ?
>
> Thanks
>
> Valerio Santinelli
> tanis@mediacom.it

You may drop the sequence and then re-create it by specifying the start
as in:

   DROP SEQUENCE contatore;
   CREATE SEQUENCE contatore START 101;

Or if you desire you can increment the counter like this:

   SELECT NEXTVAL ('contatore');

Buon divertimento!
-Jose'-