Обсуждение: No Primary Keys (pg7.4.2 on SLES9)
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();
}
}
}
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
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