Hallo,
ich hätte da ein kleines Problem!
Bsp.:
Ich habe zwei Tabellen. Eine Haupttabelle "A" und eine andere Tabelle "B".
Wenn ich einen Datensatz in Tabelle "A" eintrage wird eine Id automatisch erzeugt. Diese automatisch erzeugte Id soll nach einer erneuten "insert" Anweisung in die Tabelle "B" geschrieben werden.
Theorie:
Sollten jetzt zwei Leute "gleichzeitig" einen neuen Datensatz in Tabelle "A" einfügen, kann mein Programm die Id's aus Tabelle "A" nicht richtig in die Tabelle "B" einfügen, da ich nur nach der maximum Id aus der Tabelle "A"
frage. Die vorletzte Id aus der Tabelle "A" würde beim eintragen in die Tabelle "B" einfach unterschlagen werden.
Bisheriger Quelltext:
//Datensatz in Tabelle "A" einfügen
INSERT INTO Tabelle_A (id, datensaetze)
VALUES ('',sfghsfgh);
//Welche id hat die DB erzeugt?
SELECT max(id) from Tabelle_A
//Den max(Wert) mit den entsprechenden Datensätzen in die
//Tabelle B Speicher
INSERT INTO Tabelle_B (id(aus der Tabelle "A"), datensaetze)
VALUES ('',sfghsfgh);
Die Wahrscheinlichkeit ist zwar ziemlich gering, dass zwei Leute gleichzeitig speichern, erhöht sich aber mit der Anzahl der User.
Gibt es eine Möglichkeit dem Vorzubeugen. Zum Beispiel die Tabelle "A" sperren während meine Speicherfunktion läuft oder die neue Id aus der der Tabelle A irgendwie schon vor der Speicherung reservieren????
Alle Vorschläge an mich!!!
Danke im Voraus!
Gruß Wegalt
ich hätte da ein kleines Problem!
Bsp.:
Ich habe zwei Tabellen. Eine Haupttabelle "A" und eine andere Tabelle "B".
Wenn ich einen Datensatz in Tabelle "A" eintrage wird eine Id automatisch erzeugt. Diese automatisch erzeugte Id soll nach einer erneuten "insert" Anweisung in die Tabelle "B" geschrieben werden.
Theorie:
Sollten jetzt zwei Leute "gleichzeitig" einen neuen Datensatz in Tabelle "A" einfügen, kann mein Programm die Id's aus Tabelle "A" nicht richtig in die Tabelle "B" einfügen, da ich nur nach der maximum Id aus der Tabelle "A"
frage. Die vorletzte Id aus der Tabelle "A" würde beim eintragen in die Tabelle "B" einfach unterschlagen werden.
Bisheriger Quelltext:
//Datensatz in Tabelle "A" einfügen
INSERT INTO Tabelle_A (id, datensaetze)
VALUES ('',sfghsfgh);
//Welche id hat die DB erzeugt?
SELECT max(id) from Tabelle_A
//Den max(Wert) mit den entsprechenden Datensätzen in die
//Tabelle B Speicher
INSERT INTO Tabelle_B (id(aus der Tabelle "A"), datensaetze)
VALUES ('',sfghsfgh);
Die Wahrscheinlichkeit ist zwar ziemlich gering, dass zwei Leute gleichzeitig speichern, erhöht sich aber mit der Anzahl der User.
Gibt es eine Möglichkeit dem Vorzubeugen. Zum Beispiel die Tabelle "A" sperren während meine Speicherfunktion läuft oder die neue Id aus der der Tabelle A irgendwie schon vor der Speicherung reservieren????
Alle Vorschläge an mich!!!
Danke im Voraus!
Gruß Wegalt
Kommentar