sql insert in 2 tabellen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
heiko
Beiträge: 60
Registriert: 13.03.2006 18:19:38
Kontaktdaten:

sql insert in 2 tabellen

Beitrag von heiko » 14.06.2009 11:42:01

Guten morgen Leute,

mal ne etwas bescheidene Frage:

und zwar habe ich 2 Tabellen und ein Formular (java/swing), mit dem ich Daten eintrage.
zB die daten:
username, telefonnummer, buch1, buch2
nun sieht es so aus, dass in tab1 nur Daten aus dem Formular reinkommen, ich also ein ganz normales preparedStatement abfeuern kann (also username, telefonnummer).
Bei der 2. Tabelle allerdings, müsste die gerade erzeugte ID des Users reinkommen.
also diese Daten: tab1.userID, buch1, buch2.

wie müsste jetzt mein SQL Statement aussehen? Da der User immer neu angelegt und die ID per autoincrement hochgezählt wird, würde es mir auch reichen, wenn ich einfach die letzte ID mit reinschreibe.

Hoffe ihr wisst was ich meine.
hier nochmal meine abstrakte "Datenstruktur":
tab1(userID, name, telefonnummer) -> zB. Insert into tab1 values (0,peter,123) (optional auch als PreparedStatement)
tab2(id, userID, buch1, buch2) -> zB. Insert into tab2 values (0,USERID,'buchnr1', 'buchnr2'')

Danke

Benutzeravatar
shoening
Beiträge: 915
Registriert: 28.01.2005 21:05:59
Lizenz eigener Beiträge: MIT Lizenz

Re: sql insert in 2 tabellen

Beitrag von shoening » 14.06.2009 12:56:22

Hi,

du solltest angeben, um welche Datenbanksoftware es sich handelt - autoincrement hat naemlich nicht
jede Datenbank.

Wenn ich mich recht entsinne gibt es bei Datenbanken mit autoincrement so was wie eine "returning" clausel,
in der man angeben kann, dass beim Insert ein Wert zurueckgegeben werden soll (eben der soeben erzeugte
primary key).

Falls es das nicht gibt, musst Du den Wert fuer den Primary key vorher manuell aus einer Sequence ziehen
und den dann in beiden Statements benutzen.

Ciao
Stefan
Bürokratie kann man nur durch ihre Anwendung bekämpfen.

heiko
Beiträge: 60
Registriert: 13.03.2006 18:19:38
Kontaktdaten:

Re: sql insert in 2 tabellen

Beitrag von heiko » 14.06.2009 13:08:17

Hi Stefan,

das wäre natürlich optimal, bietet MySQL sowas
(zur Not könnte ich auch umsteigen, wobei sich das wahrscheinlich nicht lohnen würden)?

Mit "Sequenz ziehen" meist du eine Abfrage auf den aktuellen Datenstamm ?

also mal skizzenhaft:
Usereintrag -> Abfrage auf User, letzte ID ermitteln -> Bucheintrag

?

danke

Benutzeravatar
shoening
Beiträge: 915
Registriert: 28.01.2005 21:05:59
Lizenz eigener Beiträge: MIT Lizenz

Re: sql insert in 2 tabellen

Beitrag von shoening » 14.06.2009 13:41:39

Hi,

bei mySQL gibt es die Funktion LAST_INSERT_ID() - da gibt es bestimmt in der Doku zu AUTO_INCREMENT
entsprechende Hinweise.

Ciao
Stefan
Bürokratie kann man nur durch ihre Anwendung bekämpfen.

heiko
Beiträge: 60
Registriert: 13.03.2006 18:19:38
Kontaktdaten:

Re: sql insert in 2 tabellen

Beitrag von heiko » 14.06.2009 13:56:16

sauber!

vielen Dank, läuft bestens!

Antworten