# Frage zu INSERTS über mehrere Datenbanktabellen



## DennisXX (12. Aug 2011)

Hi Folks !

Ist es eigentlich ohne weiteres möglich, ein SQL INSERT Statement über mehrere Datenbanktabellen zu gestalten, oder funktioniert das jeweils nur für eine eigene Datenbanktabelle?

Also ich habe z.B. eine kleine Datenbank, in der drei Tabellen mittels Fremd- und Primärschlüsselbeziehungen zusammenhängen und die Daten eigentlich auch nur zusammenhängend einen semantischen Sinn ergeben, aber aufgrund von Normalisierungsregeln auf mehrere Datenbanktabellen verteilt werden mussten.

Wenn ich nun ein GUI gestalte, in der der Benutzer Daten eingeben kann, die eigentlich alle drei Tabellen betreffen, muss ich dann als Entwickler einen eigenen Insert Befehl für jede einzelne Tabelle umsetzen und dann auch selbst sichrstellen, dass Fremd- und Primärschlüsselregeln eingehalten werden? Und wenn ja, wie kann ich sicherstellen, dass dieses auch geschieht (z.B. wenn es sich dabei um einzelen Nummern oder so handelt).

Oder kann man auch INSERT Befehle über mehrere  Tabellen in meinem einzigen Befehl absetzen?

Greetz
Dennis


----------



## thE_29 (12. Aug 2011)

Also eine PK-FK Beziehung überprüft eine DB meistens selbst (wenn es so eingetragen ist) und könnte im Fehlerfall ne Exception liefern..

Des weiteren Inserts über mehrere Tabellen: Das musst du selbst machen.. Nichtmal ein PreparedStatement würde dir was bringen, da der Tabellenname angegeben sein muss und nicht überladbar ist..

Außerdem würde es nur helfen, wenn die Tabellen die gleichen Spalten haben, nur dann müsste man sich Fragen wozu überhaupt 3 Tabellen..


----------



## DennisXX (12. Aug 2011)

Also es kann ja sein, dass die Daten, die drei Datenbanktabellen betreffen würden, von dem Benutzer über eine einzige Benutzeroberfläche eingegeben werden.

Greetz
Dennis


----------



## thE_29 (12. Aug 2011)

Naja, dann machste 3 Inserts..

Weiß jetzt nicht ganz wo das Problem besteht...

Und natürlich muss du als Entwickler dich darum kümmern, dass da kein Blödsinn in der DB steht. Dh, du darfst Blödsinnseingaben nicht zulassen oder beim Speichern drücken einen Fehler bringen..


----------

