Foreign key einstellen java

berserkerdq2

Bekanntes Mitglied
Hi, muss ich bei einem Attribut schreiben, dass er ein foreign key ist in sql, wenn ich refernces mache und dann ein primery key referenziere? Dann braucht man nicht extra foreign key schreiben oder? Ist automatisch schon ein primary key dann?
 
Beste Antwort
Y
soweit ich mich erinnere gibt's 2 Schreibweisen musst du selber mal schauen
das foreign key kann man glaub ich weglassen

somit sollte falls ad in Hochschule ein primary key ist das oki ein fremdschlussel sein

jedoch würde ich dir ein design Problem an den kopf werfen

die Tabellen hardgecoded ins programm zu schreiben kann Nachwirkungen haben, würde eine datei schreiben die alle create tables drin hat und diese latscht du durch
wenn du primary key auf primary key hast hast du ne 1:1 beziehung die kannst du auch zusammen fügen
Ne ich mein z. B.:

Java:
        try (Statement op = connection.createStatement()) {
            String m = "CREATE TABLE IF NOT EXISTS abc" +
                    "(ad INTEGER PRIMARY KEY,"+
            op.executeUpdate(m);
            op.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }



        try (Statement st = connection.createStatement()) {
            String u= "CREATE TABLE IF NOT EXISTS abcd" +
            "(ID INTEGER PRIMARY KEY," +
            "oki INTEGER REFERENCES Hochschulen(ad)),"
            st.executeUpdate(u);
            st.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

Ist oki jetzt automatisch ein fremdschlüssel?
 
soweit ich mich erinnere gibt's 2 Schreibweisen musst du selber mal schauen
das foreign key kann man glaub ich weglassen

somit sollte falls ad in Hochschule ein primary key ist das oki ein fremdschlussel sein

jedoch würde ich dir ein design Problem an den kopf werfen

die Tabellen hardgecoded ins programm zu schreiben kann Nachwirkungen haben, würde eine datei schreiben die alle create tables drin hat und diese latscht du durch
 
Beste Antwort
Generell solltest Du Dir die Syntaxt bei der Datenbank ansehen, die Du nutzt. Die genaue Syntax kann von Datenbank zu Datenbank unterschiedlich sein. Wenn bei der verwendeten Datenbank ein Schlüsselwort weggelassen werden kann, dann würde ich aber zusätzlich noch ANSI SQL prüfen, was der Standard sagt. Damit erhöht sich die Chance, dass ein SQL Befehl auch auf anderen Datenbanken läuft.

Bezüglich Foreign Key gibt e z.B. klare Unterschiede bei Datenbanken, siehe z.B.:

Aber generell kannst Du die diversen Möglichkeiten immer auf einer Datenbank selbst ausprobieren um zu sehen, ob etwas funktioniert oder nicht.
 

Zurück
Oben