Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Primärschlüssel - Java

Dieses Thema im Forum "Oracle" wurde erstellt von avatar, 7 August 2016.

  1. avatar

    avatar Neuer Benutzer

    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
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Der PK geht über die ersten 2 Spalten. Was ist Deine exakte Frage?
     
  3. avatar

    avatar Neuer Benutzer

    Genau, aber wie kann ich in Java auf den PK zu greifen?
     
  4. drdimitri

    drdimitri Datenbank-Guru

    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
     
    akretschmer gefällt das.
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden