Tabellen gleichzeitig befüllen?

  • Themenstarter Themenstarter mas
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
M

mas

Gast
Hallo!
Ich hab da eine konzptionelle Frage.

Angenommen ich möchte einen Auftrag in einer Tabelle speichern und die gekauften Produkte eines Auftrages in einer anderen Tabelle.

Tabelle Auftraege: Auftrag_id, Kunden_id, zusatzinfo
Tabelle gekaufteProdukte : Auftrag_ID,Produkt_ID,Menge

Angenommen meine Auftrag_ID wird von der Datenbank automatisch erzeugt
(Int auto_increment)

D.h sie wird erst zum Zeitpunkt des :
insert into Auftraege (Kunden_id,Zusatzinfo) values("hugo","superversand")

Wie kann ich dann "gleichzeitig, die zumm Auftrag gehörenden Produkte abspeichern?
Dazu bräuchte ich ja die Auftrags_ID, die erst erzeugt wird?

Ich muesste ja in die Gekaufte Produkte die zugehörige Auftrag_ID speichern, sonst weiß ich ja nicht was zum Auftrag gehört.

Braucht man dazu mehrere Statements? 1. Insert Auftrag, dann iregndwie die ID holen, und dann merhere Inserts für die Produkte , oder gehtd as iregndwie simpler?

lg
mas
 
Hi,

gleichzeitig geht ja wohl nicht, aber nacheinander. Die ID gibt dir dein DBMS wieder (bei MySQL z.B. mit "select LAST_INSERT_ID();").

Hoffe es hilft,

Caffè Latte
 
Super! Damit sollte das gehen.

Das heißt ich gehe so vor:

insert into auftrage (undennummer) values ("1234");

dann:

select LAST_INSERT_ID() from auftrage;

damit erhalte ich die id des Auftrages und trage die in die Produktliste ein!


DANKE!!!!
 
Hi,

ja, genau so müsste es gehen. LAST_INSERT_ID() ist auch sessionbezogen, d.h. du brauchst keinen Lock auf die Tabelle setzen.

Caffè Latte
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben