Primärschlüssel - Java

avatar

Neuer Benutzer
Beiträge
2
Hi, ich habe eine Datenbank mit mehreren Tabellen, eine davon ist wie folgt definiert:
CREATE TABLE CARDS.ABONIERT (
VID NUMBER NOT NULL,
BID NUMBER NOT NULL,
PRIMARY KEY (BID,VID)
);

Über Java sollte diese dann zunächst einmal ausgegeben werden, realisiert durch:
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from aboniert");
while(rs.next())
{
System.out.println(rs.getString(1) + "\t" + rs.getString(2));
}

Frage hierzu: Gibt es eine Möglichkeit auch den Primary Key auszugeben, also quasi die erste Spalte aus der Tabelle?
DatabaseMetaData dbmd = con.getMetaData();
ResultSet rs_keys = dbmd.getPrimaryKeys(null,null, "aboniert");
while(rs_keys.next())
{
System.out.println(rs_keys.getString(?));
}
Oder so ähnlich.

Hat vielleicht iwer von euch eine Idee oder irgend einen Anhaltspunkt für mich??
Ich wäre euch sehr dankbar für jeden Tipp!
LG avatar
 
Werbung:
Hi, ich habe eine Datenbank mit mehreren Tabellen, eine davon ist wie folgt definiert:
CREATE TABLE CARDS.ABONIERT (
VID NUMBER NOT NULL,
BID NUMBER NOT NULL,
PRIMARY KEY (BID,VID)
);


Frage hierzu: Gibt es eine Möglichkeit auch den Primary Key auszugeben, also quasi die erste Spalte aus der Tabelle?

Der PK geht über die ersten 2 Spalten. Was ist Deine exakte Frage?
 
Werbung:
Moin,
du meinst vermutlich etwas wie ResultSetMetaData. Allerdings liefert diese Klassen nicht, ob es sich um eine PK Spalte handelt, Du musst also direkt das DataDictionary von Oracle befragen:
select * from all_cons_columns
where table_name='ABONIERT'
and owner='CARDS'
and constraint_name =(select constraint_name
from all_constraints
where table_name='ABONIERT'
and constraint_type='P'
and owner='CARDS')
order by position;


PS: "Abonniert" schreibt man mit 2 n :p
 
Zurück
Oben