Thread: jdbc how to get SERIAL

jdbc how to get SERIAL

From
John Thorhauer
Date:
How do I get the id column of a row via jdbc if the column is a SERIAL
column.  I want to get the id of the row after I insert new data via
jdbc execute command.

Thanks,
John Thorhauer

-- 
********************************
** John Thorhauer
** jthorhauer@phoenixcolor.com
********************************


Re: jdbc how to get SERIAL

From
Joseph Shraibman
Date:
Explictly get the value.

For example:
ResultSet rs = st.executeQuery("select nextval('my_col_name_seq'));st.next(); int id =
st.getInt(1);st.executeUpdate("insertinto mytable values(id = "+id+" , myvalu =
 
'blah');");

John Thorhauer wrote:
> 
> How do I get the id column of a row via jdbc if the column is a SERIAL
> column.  I want to get the id of the row after I insert new data via
> jdbc execute command.
> 
> Thanks,
> John Thorhauer
> 
> --
> ********************************
> ** John Thorhauer
> ** jthorhauer@phoenixcolor.com
> ********************************


Re: jdbc how to get SERIAL

From
Joseph Shraibman
Date:
Wim Ceulemans wrote:
> 
> Joseph Shraibman wrote:
> >
> > Explictly get the value.
> >
> > For example:
> > ResultSet rs = st.executeQuery("select nextval('my_col_name_seq'));
> >         st.next(); int id = st.getInt(1);
> >         st.executeUpdate("insert into mytable values(id = "+id+" , myvalu =
> > 'blah');");
> >
> > John Thorhauer wrote:
> > >
> > > How do I get the id column of a row via jdbc if the column is a SERIAL
> > > column.  I want to get the id of the row after I insert new data via
> > > jdbc execute command.
> > >
> > > Thanks,
> > > John Thorhauer
> > >
> 
> Doesn't it have to be currval in stead of nextval?
> 
No, you want to do an insert, to you need to get the nextval.


RE: jdbc how to get SERIAL

From
Peter Mount
Date:
The function currval does this. Ie:
select currval("mycol_id_seq");

where mycol is the table and id is the column for the sequence.

Would return that value. PS: The result is for that session, so if another
session increments that sequence, you don't see that value but the last
value of _your_ session.

Peter

--
Peter Mount
Enterprise Support
Maidstone Borough Council
Any views stated are my own, and not those of Maidstone Borough Council


-----Original Message-----
From: John Thorhauer [mailto:jthorhauer@phoenixcolor.com]
Sent: Tuesday, July 18, 2000 7:37 PM
To: pgsql-interfaces@postgresql.org
Subject: [INTERFACES] jdbc how to get SERIAL


How do I get the id column of a row via jdbc if the column is a SERIAL
column.  I want to get the id of the row after I insert new data via
jdbc execute command.

Thanks,
John Thorhauer

-- 
********************************
** John Thorhauer
** jthorhauer@phoenixcolor.com
********************************


RE: jdbc how to get SERIAL

From
Peter Mount
Date:
If you call nextval() then ther sequence will increment. Once the insert has
been done, currval() will then return the last value used in that
connection. You don't have any race conditions with other connections with
currval.

Peter

--
Peter Mount
Enterprise Support
Maidstone Borough Council
Any views stated are my own, and not those of Maidstone Borough Council


-----Original Message-----
From: Joseph Shraibman [mailto:jks@selectacast.net]
Sent: Tuesday, July 18, 2000 10:16 PM
To: Wim Ceulemans
Cc: John Thorhauer; pgsql-interfaces@postgresql.org
Subject: Re: [INTERFACES] jdbc how to get SERIAL


Wim Ceulemans wrote:
> 
> Joseph Shraibman wrote:
> >
> > Explictly get the value.
> >
> > For example:
> > ResultSet rs = st.executeQuery("select nextval('my_col_name_seq'));
> >         st.next(); int id = st.getInt(1);
> >         st.executeUpdate("insert into mytable values(id = "+id+" ,
myvalu =
> > 'blah');");
> >
> > John Thorhauer wrote:
> > >
> > > How do I get the id column of a row via jdbc if the column is a SERIAL
> > > column.  I want to get the id of the row after I insert new data via
> > > jdbc execute command.
> > >
> > > Thanks,
> > > John Thorhauer
> > >
> 
> Doesn't it have to be currval in stead of nextval?
> 
No, you want to do an insert, to you need to get the nextval.