Hallo,
derzeit erstelle ich mit Swing eine kleine Applikation, die über ein Formular Daten in eine Datenbank einträgt.
Die Eingaben auf dem Formular sollen in 2 Tabellen eingefügt werden.
Die beiden Tabellen haben eine 1:n Beziehung. Die Datenbank ist eine Oracle 11.
Wie man einen Insert macht, ist kein Problem. Nur wie man Daten in 2 Tabellen einfügt, überfordert mich.
Dies ist der beispielhafte Aufbau der beiden Tabellen:
Tabelle1:
ID (Autowert/Sequenz -> wird von Oracle automatisch vergeben)
Vorname
Nachname
Tabelle2:
IdRef (ID der Tabelle 1)
Menge
Artikel
Ich möchte jetzt einen Datensatz in Tabelle1 inserten und mehrere (vielleicht so ca. 50 Datensätze) in Tabelle 2 inserten.
1) Kann man dies mit einem Insert-Statement realisieren? Oder sollte man sowas nicht machen, falls dies überhaupt gehen sollte.
2) Mein Problem ist, dass ich ja in Tabelle 2 die ID der Tabelle2 als Fremdschlüssel benötige.
Deswegen würde ich das so machen:
Insert in Tabelle1
Select max(ID) from Tabelle1 --> somit habe ich gerade eben vergebene ID
Und jetzt alle Inserts in Tabelle2 -> Entweder über "Insert ALL" oder über eine Schleife.
Das Mini-Problem, das ich hier sehe, ist, das in dem Moment, wo ich den Select max(ID) mache, gerade eben ein anderer Insert in Tabelle1 gemacht wurde und ich somit die falsche ID erhalte. Auch wenn dies sehr unwahrscheinlich sein sollte - könnte aber passieren. Sollte man daher lieber die Tabelle sperren?
Oder wie macht man sowas?
Kann mir bitte jemand einen Tipp geben
Vielen Dank und einen schönen Feiertag
Grüße
Heidi
derzeit erstelle ich mit Swing eine kleine Applikation, die über ein Formular Daten in eine Datenbank einträgt.
Die Eingaben auf dem Formular sollen in 2 Tabellen eingefügt werden.
Die beiden Tabellen haben eine 1:n Beziehung. Die Datenbank ist eine Oracle 11.
Wie man einen Insert macht, ist kein Problem. Nur wie man Daten in 2 Tabellen einfügt, überfordert mich.
Dies ist der beispielhafte Aufbau der beiden Tabellen:
Tabelle1:
ID (Autowert/Sequenz -> wird von Oracle automatisch vergeben)
Vorname
Nachname
Tabelle2:
IdRef (ID der Tabelle 1)
Menge
Artikel
Ich möchte jetzt einen Datensatz in Tabelle1 inserten und mehrere (vielleicht so ca. 50 Datensätze) in Tabelle 2 inserten.
1) Kann man dies mit einem Insert-Statement realisieren? Oder sollte man sowas nicht machen, falls dies überhaupt gehen sollte.
2) Mein Problem ist, dass ich ja in Tabelle 2 die ID der Tabelle2 als Fremdschlüssel benötige.
Deswegen würde ich das so machen:
Insert in Tabelle1
Select max(ID) from Tabelle1 --> somit habe ich gerade eben vergebene ID
Und jetzt alle Inserts in Tabelle2 -> Entweder über "Insert ALL" oder über eine Schleife.
Das Mini-Problem, das ich hier sehe, ist, das in dem Moment, wo ich den Select max(ID) mache, gerade eben ein anderer Insert in Tabelle1 gemacht wurde und ich somit die falsche ID erhalte. Auch wenn dies sehr unwahrscheinlich sein sollte - könnte aber passieren. Sollte man daher lieber die Tabelle sperren?
Oder wie macht man sowas?
Kann mir bitte jemand einen Tipp geben
Vielen Dank und einen schönen Feiertag
Grüße
Heidi