Thread: No Primary Keys (pg7.4.2 on SLES9)

No Primary Keys (pg7.4.2 on SLES9)

From
"Vidas Makauskas"
Date:

Hi,

I get error NO PRIMARY KEY from prs.moveToInsertRow();

Postgres 7.4.2 on with /usr/share/pgsql/pg73b1jdbc3.jar

All packets from the same Suse Standard Enterprise Server 9 CD‘s.

Bellow full test.java source.

Best regards

 

import java.sql.*;

 

public class

testas

{

  private static Connection pg;

 

public static void

main(String [] args)

{

 try {

  Class.forName("org.postgresql.Driver").newInstance();

 }

 catch (Exception e) {

 }

 try {

  pg = DriverManager.getConnection("jdbc:postgresql://192.168.2.3/db","vidas","");

  Statement st = pg.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

  st.executeUpdate("CREATE TABLE public.testas (loid integer PRIMARY KEY) WITHOUT OIDS");

  ResultSet prs = st.executeQuery("SELECT p.* FROM public.testas p");

//prs.next();

prs.moveToInsertRow();

//System.out.println(prs.getConcurrency());

 }

 catch (SQLException e) {

  System.out.println("err: "+e);

  e.printStackTrace();

 }

}

 

}

Re: No Primary Keys (pg7.4.2 on SLES9)

From
Kris Jurka
Date:

On Mon, 3 Apr 2006, Vidas Makauskas wrote:

> I get error NO PRIMARY KEY from prs.moveToInsertRow();
>
> Postgres 7.4.2 on with /usr/share/pgsql/pg73b1jdbc3.jar
>
>  Statement st = pg.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
> ResultSet.CONCUR_UPDATABLE);
>  st.executeUpdate("CREATE TABLE public.testas (loid integer PRIMARY KEY)
> WITHOUT OIDS");
>  ResultSet prs = st.executeQuery("SELECT p.* FROM public.testas p");
> prs.moveToInsertRow();

Older JDBC drivers do not support schema qualified table names for
updatable result sets.  Try a newer version:

http://jdbc.postgresql.org/download.html

Kris Jurka

Re: No Primary Keys (pg7.4.2 on SLES9)

From
"Vidas Makauskas"
Date:
Thanks for fast response,
I found one more way:

1. create table WITH OIDS (by default)
st.executeUpdate("CREATE TABLE public.testas
 (loid integer, othe integer PRIMARY KEY)");

2. executeQuery("SELECT p.oid, p.* ...
"SELECT p.*" - not suitable, must be "SELECT p.oid, p.*"

Best regards

-----Original Message-----
From: Kris Jurka [mailto:books@ejurka.com]
Sent: Wednesday, April 05, 2006 12:34 AM
To: Vidas Makauskas
Cc: pgsql-jdbc@postgresql.org
Subject: Re: [JDBC] No Primary Keys (pg7.4.2 on SLES9)



On Mon, 3 Apr 2006, Vidas Makauskas wrote:

> I get error NO PRIMARY KEY from prs.moveToInsertRow();
>
> Postgres 7.4.2 on with /usr/share/pgsql/pg73b1jdbc3.jar
>
>  Statement st = pg.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
> ResultSet.CONCUR_UPDATABLE);
>  st.executeUpdate("CREATE TABLE public.testas (loid integer PRIMARY KEY)
> WITHOUT OIDS");
>  ResultSet prs = st.executeQuery("SELECT p.* FROM public.testas p");
> prs.moveToInsertRow();

Older JDBC drivers do not support schema qualified table names for
updatable result sets.  Try a newer version:

http://jdbc.postgresql.org/download.html

Kris Jurka