Обсуждение: jdbc how to get SERIAL

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

jdbc how to get SERIAL

От
John Thorhauer
Дата:
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

От
Joseph Shraibman
Дата:
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

От
Joseph Shraibman
Дата:
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

От
Peter Mount
Дата:
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

От
Peter Mount
Дата:
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.