MySQL Insert über mehrere Tabellen

MarioW1986

Bekanntes Mitglied
HAllo zusammen, ich habe zwar schon versucht über google etwas herauszufinden, jedoch kam ich zu keinem zufriedenstellenden Ergebnis.
Ich habe zwei Tabellen in einer MySQL Datenbank. Diese sind über ein Fremdschlüssel miteinander verbunden. Die erste Tabelle enthält eine UserID sowie die BehandlungsID der anderen Tabelle als Fremdschlüssel. Jetzt möchte ich beispielsweise einen neuen User anlegen, zu dem parallel eine behandlung bzw die Bahenadlungseinträge gemacht werden. heißt eben beide tabellen beschrieben.

Kann mir jemand mal ein beispiel geben wie man in 2 tabellen schreibt? Muss nicht auf mein Beispiel passen. Nur damit ich mal den grundlegende Ablauf beim Schreiben in 2 Tabellen sehen kann.

Danke schonmal

MfG
 

Joose

Top Contributor
Wird die UserID/BehandlungsID von der Datenbank generiert oder von dir festgelegt?

Aber im Prinzip: Du machst dein INSERT auf die BehandlungsTabelle. Entweder hast du die BehandlungsID schon in der Hand oder du musst dir von der DB die zuletzt erstellte ID holen und kannst diese bei dem 2ten INSERT verwenden.
 

MarioW1986

Bekanntes Mitglied
Hallo, danke schon einmal für die schnelle Antwort. Die UserID ist bereits angelegt und die BehandlungsID wird zur Laufzeit erstellt. Heißt wenn im Programm eine Behandlung gestartet wird soll zu dem User eine Behandlung angelegt werden. In der Tabelle mit der UserID sind noch einige zusätzliche Infos die nur einmalig eingetragen werden. In der Behandlungstabelle werden jede Sekunde Daten geschrieben.

Könntest du mir dazu ein kurzes Beispiel geben? Ich habe grundlegend schon verstanden was du mir gesagt hast. Aber ich kann mir das anhand eines Beispiels besser vorstellen und übertragen wenn es nicht zu viele Umstände macht :)

Danke
 

Joose

Top Contributor
Könntest du mir dazu ein kurzes Beispiel geben? Ich habe grundlegend schon verstanden was du mir gesagt hast. Aber ich kann mir das anhand eines Beispiels besser vorstellen und übertragen wenn es nicht zu viele Umstände macht :)

Ich weiß nicht wo das Problem liegt. Du hast eine Methode die ein INSERT auf die Tabelle Users durchführt. Und eine weitere Methode, welche ein INSERT auf die Tabelle Behandlungen durchführt.
Was für Pseudocode erwartest du dir?

Java:
public boolean insertUser(User user){
   PreparedStatement stmt = conn.getPreparedStatement(SQL_INSERT_USER);
   stmt.setString(1, ....);
   ......
   ......
   return stmt.execute();
}

Die UserID ist bereits angelegt und die BehandlungsID wird zur Laufzeit erstellt.
Heißt wenn im Programm eine Behandlung gestartet wird soll zu dem User eine Behandlung angelegt werden. In der Tabelle mit der UserID sind noch einige zusätzliche Infos die nur einmalig eingetragen werden. In der Behandlungstabelle werden jede Sekunde Daten geschrieben.

Wie schaut denn dein DB-Design aus? Und was hast du vor? Weil nach deiner Beschreibung willst du für einen User immer wieder eine Behandlung starten können (wenn vorherige beendet wurde). Aber laut der Beschreibung aus dem Anfangspost steht die BehandlungsID auf der Users Tabelle. Somit wäre pro User max 1 Behandlung möglich. Bzw. wenn diese ID geändert wird kannst du vorherige Behandlungen nicht mehr dem User zuordnen.
 

MarioW1986

Bekanntes Mitglied
Hallo also im prinzip gibt es 3 tabellen, die user tabelle, die zwischentabelle in dem feste werte stehen und die bahndlungstabelle. die usertabelle ist gesetzt und die zwischentabelle und die behandlungstabelle sollen gefüllt werden. wie gesagt die userid ist bereits bekannt. ich wollte die sache nicht verkomplizieren. Ich wollte auch kein Java Code sonder neher wie die inserts angelegt werden.
 

Joose

Top Contributor
Es ist immer besser zuviel als zuwenig Informationen heraus zugeben! ;)

Wie sollten die INSERTs denn angelegt sein?
SQL:
INSERT INTO [Tabelle]([Spalte1], [Spalte2], ..., [SpalteN]) VALUES ([Wert1], [Wert2], ..., [WertN]);
 

MarioW1986

Bekanntes Mitglied
Ja das ist ja ein stinknormaler Insert :) das kenn ich ja. Meine Frage ist eigentlich "nur" ob bzw wie das bei mehreren Tabellen aufgebaut ist oder mach ich das dann in dieser form?

(Quelle anderes <Forum)
INSERT INTO user (name)
VALUES ('John Smith');
INSERT INTO user_details (id, weight, height)
VALUES (LAST_INSERT_ID(),83, 185);
 

Joose

Top Contributor
Ja so in der Art kann man es wahrscheinlich auch machen.

Da du aber diese "LAST_INSERTED_ID" wahrscheinlich auch im Programm brauchen wirst, solltest du zuerst das INSERT auf die User Tabelle machen und dann ein extra Select um die erstellte ID abzufragen. Mit dieser ID kannst du dann dein 2tes INSERT machen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S ID Wert von Insert über jdbcTemplate.update Datenbankprogrammierung 3
T compiler fehler: should be mapped with insert="false" update="false" Datenbankprogrammierung 1
L SQL Datenbank INSERT INTO Datenbankprogrammierung 6
L SQL Datenbank Tabelle insert Datenbankprogrammierung 7
O HOW TO INSERT PRIMARY INTO ANOTHER TABLE AND USE IT AS FOREIGN KEY TO DISPLAY DATA IN A RELATIONSHIP Datenbankprogrammierung 3
G Eine Spalte in xampp als Typ array erstellen - ein array mit "insert" hinzufügen. Datenbankprogrammierung 3
C Problem with INSERT.............ON DUPLICATE KEY Datenbankprogrammierung 3
A MySQL Select und Insert in Java Datenbankprogrammierung 15
S PostgreSQL Bytea INSERT Datenbankprogrammierung 8
W Problem mit Insert in zwei Tabellen Datenbankprogrammierung 8
L INSERT INTO Befehl in Java Datenbankprogrammierung 8
L SQL-Statement INSERT INTO ON DUPLICATE KEY UPDATE funktioniert nicht Datenbankprogrammierung 5
D Insert Methode per Servlet Datenbankprogrammierung 2
D Insert Methode per Servlet Datenbankprogrammierung 0
D SQLite INSERT OR REPLACE INTO macht neuen Eintrag?! Datenbankprogrammierung 2
O JDBC Daten in zwei Tabellen mit zwei foreach-Schleifen einfügen (insert into) Datenbankprogrammierung 1
B JPA->fehler beim Insert in die Datenbank Datenbankprogrammierung 3
A Oracle insert Array in DB Datenbankprogrammierung 7
C MySQL JTable in JScrollPane nach insert aktualisieren Datenbankprogrammierung 3
X SQLite Erhalte bei Query INSERT INTO eine NullPointerException Datenbankprogrammierung 10
M JAVA Derby INSERT probleme Datenbankprogrammierung 12
Y MySQL Eclipselink Insert JSF Beispiel gesucht Datenbankprogrammierung 2
T MySQL MySQL - Insert into fügt zwei identische Datensätze ein Datenbankprogrammierung 2
M Derby/JavaDB Derby SQL Insert mit AUTO_INCREMENT, welche ID wurde vergeben? Datenbankprogrammierung 6
D HSQLDB INSERT INTO in einer For Schleife mit selber ID, machbar? Alternative? Datenbankprogrammierung 7
J SQL-Statement Meine insert befehle funktionieren nicht und ich weiß nicht wo der fehler liegt Datenbankprogrammierung 5
M INSERT-Problem = integrity constraint violation: foreign key no parent Datenbankprogrammierung 5
P MySQL INSERT / UPDATE MySQL - perStoredProcedure oder direkt im Code Datenbankprogrammierung 3
V HSQLDB Insert in eine Tabelle mit Autoincrement Datenbankprogrammierung 2
B MS SQL: Insert LOB Datenbankprogrammierung 4
M MySQL INSERT will einfach nicht funktionieren Datenbankprogrammierung 9
H HSQLDB insert .... values("test1",select test2 from foo) Datenbankprogrammierung 2
D JDBC insert mit select abfrage Datenbankprogrammierung 5
R vor/nach INSERT mysql-SETS absetzen Datenbankprogrammierung 2
C insert into mit between-Anweisung Datenbankprogrammierung 10
C Derby/JavaDB INSERT auf FOREIGN KEY schlägt fehl Datenbankprogrammierung 2
F Insert into Access Datenbankprogrammierung 3
S Nochmals: ID ermitteln nach Insert Datenbankprogrammierung 2
O Viele Verbindungen-Exception bei insert Daten zur MySQL-Datenbank Datenbankprogrammierung 2
B SELECT ja - INSERT nein (MySQL) Datenbankprogrammierung 3
E Derby/JavaDB Keine Reaktion von "insert into" im ActionListener Datenbankprogrammierung 22
A Oracle Unbekannter Fehler bei insert Befehl Datenbankprogrammierung 3
T MySQL Db select * und Insert schlagen fehl Datenbankprogrammierung 2
Kenan89 Insert ohne Auswirkung Datenbankprogrammierung 7
B MySQL myBatis INSERT Datenbankprogrammierung 13
E Access Datenbank mit Insert befüllen Datenbankprogrammierung 5
M Datenbankverbindung zu langsam beim Insert? Datenbankprogrammierung 6
S 2 Tabellen zu einer zusammenführen, INSERT INTO Fehler Datenbankprogrammierung 5
L H2 Auto INC Primary Key & Insert Datenbankprogrammierung 8
R Derby/JavaDB Insert Statement Probleme Datenbankprogrammierung 14
F H2:Wie kann man insert eine Reihe "int" wert als blob in table? Datenbankprogrammierung 12
S MySQL INSERT schlägt nicht fehl, fügt aber auch nichts ein Datenbankprogrammierung 13
S Probleme mit INSERT Befehl Datenbankprogrammierung 11
L MySQL Prepared Statement batch langsamer als bulk insert? Datenbankprogrammierung 10
M Insert in Table mit 250 Feldern Datenbankprogrammierung 2
E [ACCESS ODBC] INSERT INTO Fehler Datenbankprogrammierung 4
A Insert Methode Syntaxfehler Datenbankprogrammierung 2
G INSERT DATE in Oracle-DB Datenbankprogrammierung 11
G ODBC Insert und gleich danach Selects Datenbankprogrammierung 8
Iron Monkey Insert into Spalte ID AUTO_INCREMENT Datenbankprogrammierung 7
C ID-Rückgabe bei INSERT Datenbankprogrammierung 5
D mysql insert - performance/robustheit, "best practice" Datenbankprogrammierung 15
M Hibernate: Insert statt Update Datenbankprogrammierung 8
C Rückgabe ob INSERT erfolgreich Datenbankprogrammierung 11
H Batch Update/Insert Datenbankprogrammierung 4
E Insert oder Update- Prüfung Datenbankprogrammierung 3
K DB2 Insert mit Subselect Fehler Datenbankprogrammierung 2
M Derby insert, ID auslesen Datenbankprogrammierung 3
W Problem bei Insert mit JDBC auf MS-SQL-Server 2005 Datenbankprogrammierung 7
G Frage zum Insert-Statement Datenbankprogrammierung 2
R Probleme mit Insert Datenbankprogrammierung 2
D Problem: Prepared Statement (Insert) funktioniert nicht. Datenbankprogrammierung 3
M Insert Update usw. Datenbankprogrammierung 2
P Insert into mit zwei Datenbanken Datenbankprogrammierung 3
S Insert mit Select Datenbankprogrammierung 6
G INSERT-STATEMENT Datenbankprogrammierung 6
M insert in 2 tabellen Datenbankprogrammierung 7
J Insert auf Access DB funktioniert nicht Datenbankprogrammierung 5
H Beim insert bekomme ich den Fehler missing select keyword Datenbankprogrammierung 2
V Fehlermeldung beim Insert Datenbankprogrammierung 16
S Insert into , executeupdate oder executequery Datenbankprogrammierung 3
B PrepareStatement "Insert into" fehlermeldung Datenbankprogrammierung 13
D Insert Oracle BLOB Datenbankprogrammierung 1
T ibatis + "generated p-key" nach insert? Datenbankprogrammierung 24
G Herausfinden des Primary Keys nach INSERT-Kommando? Datenbankprogrammierung 4
G INSERT abfragen ob erfolgreich? Datenbankprogrammierung 5
D INSERT String enthält ' wie kann man das Escapen? Datenbankprogrammierung 4
T INSERT-Befehl in Java für Oracle Datenbankprogrammierung 4
Y Hibernate - Datum Insert Datenbankprogrammierung 7
D ODBC Zugriff auf MDB-Datenbank, Insert Into ohne Funktion Datenbankprogrammierung 2
U INSERT INTO von 2 Textfeldern Datenbankprogrammierung 6
D Syntaxfehler in der INSERT INTO Anweisung Datenbankprogrammierung 2
F JAVA & MySQL : INSERT INTO DB ! Datenbankprogrammierung 2
D Problem mit INSERT INTO Datenbankprogrammierung 19
S insert into table Datenbankprogrammierung 8
S Insert in Datenbank Datenbankprogrammierung 15
G Insert-anweisung mehrere Varianten eine geht Datenbankprogrammierung 2
P frage zu "" bei INSERT STATEMENTS Datenbankprogrammierung 2
K frage zum ausführen eines INSERT statements Datenbankprogrammierung 16
K INSERT INTO bei Windows 2005 SQL Server Standard Edition . Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben