Thread: sequence, set value of
Forgott how to set the value of a sequence, please tell. Daniel Akerud
The docs have it. select setval('foobar_seq',value) On Sun, 17 Jun 2001 zilch@home.se wrote: > > Forgott how to set the value of a sequence, > please tell. > > Daniel Akerud > > ---------------------------(end of broadcast)--------------------------- > TIP 3: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly > >
select setval('sequencename',newvalue) See docs at: www.portgresql.org/idocs/index.php?sql-createsequence.html Tim ----- Original Message ----- From: <zilch@home.se> To: <pgsql-general@postgresql.org> Sent: Sunday, June 17, 2001 10:36 AM Subject: [GENERAL] sequence, set value of > > Forgott how to set the value of a sequence, > please tell. > > Daniel Akerud > > ---------------------------(end of broadcast)--------------------------- > TIP 3: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly >
So, if I want the next insert to make the ID automatically 1, i can't use SERIAL since that gives me a sequence of minvalue 1? Wich results in a id = 2 in the next insert. Right? Daniel Akerud > select setval('sequencename',newvalue) > > See docs at: www.portgresql.org/idocs/index.php?sql-createsequence.html > > Tim > > ----- Original Message ----- > From: <zilch@home.se> > To: <pgsql-general@postgresql.org> > Sent: Sunday, June 17, 2001 10:36 AM > Subject: [GENERAL] sequence, set value of > > > > > > Forgott how to set the value of a sequence, > > please tell. > > > > Daniel Akerud > > > > ---------------------------(end of broadcast)--------------------------- > > TIP 3: if posting/reading through Usenet, please send an appropriate > > subscribe-nomail command to majordomo@postgresql.org so that your > > message can get through to the mailing list cleanly > > > > --- Daniel Åkerud, zilch@home.se
On Sun, Jun 17, 2001 at 08:51:56PM +0200, some SMTP stream spewed forth: > > So, if I want the next insert to make the ID automatically 1, i can't use > SERIAL since that gives me a sequence of minvalue 1? Wich results in a id = > 2 in the next insert. > > Right? No. Serial has a minval of 1, correct. However, when the minval is one and nextval is one, the nextval is...one. In other words, a newly created serial sequence will return 1 the first time it is called and 2 the second time. (The case is special when creating sequences for use as a serial because you, IIRC, must call nextval() once to make the nextval one. In other words, the first two values out of a newly created non-serial sequence with minval=1 are one.) > > Daniel Akerud
I have noticed that, but If I do select setval('sequence', 1) the next insert will give me 2. However the first insert after the creation of the sequence will give me one. I fixed the problem however. I create a sequence with minval 0 and do select setval('sequence', 0) and it gives me a 1 when I do an insert. Daniel Akerud > > So, if I want the next insert to make the ID automatically 1, i can't use > > SERIAL since that gives me a sequence of minvalue 1? Wich results in a id = > > 2 in the next insert. > > > > Right? > > No. Serial has a minval of 1, correct. However, when the minval is one > and nextval is one, the nextval is...one. > In other words, a newly created serial sequence will return 1 the first > time it is called and 2 the second time. (The case is special when > creating sequences for use > as a serial because you, IIRC, must call nextval() once to make the > nextval one. In other words, the first two values out of a newly created > non-serial sequence with minval=1 are one.) > > > > > Daniel Akerud >