Hallo, ich habe eine Funktion, die zwischen 5 und 6 SQL Updates macht.
Da es Probleme gibt, wenn 2 User gleichzeitg auf die Tabelle zugreifen, will ich die Tabellen für die Zeit der Änderung (der 5 UPDATE's) sperren.
Normalerweise würde ich LOCK TABLE nehmen, aber da gibt es ein Problem.
Aus irgendwelchen unerfindlichen Gründen hat mein Provider die DB dazuveranlasst, das ich meine Tabellen nicht mit LOCK TABLE sperren kann.
Nun folgende Aushilfslösung:
In einer Extratabelle eine Zeile hinzufügen, in der steht, das Tabelle XYZ gesperrt ist.
UPDATES machen
Extratabelleneintrag wieder löschen.
In meiner DB Klasse, frag ich nun immer mit ab ob die Tabelle gesperrt ist oder nicht.
Angenommen, das geht (noch nicht probiert)
Kann ich eine Schleife machen, die solange durchlaufen wird, bis die Tabelle wieder frei ist?
Also Theoretisch ist das eine gute Idee, ich habe nur Angst, das dadurch der Apache ein wenig zu überstrapaziert wird.
Denn angenommen es greifen 3 Leute gleichzeitig auf die Tabelle zu
dann wartet der letzte am längsten, was ja verkraftbar ist, allerdings weiß ich nicht wie sich das auf den Apachen auswirkt
Jemand Ahnung bzw, ne andere Idee?
Da es Probleme gibt, wenn 2 User gleichzeitg auf die Tabelle zugreifen, will ich die Tabellen für die Zeit der Änderung (der 5 UPDATE's) sperren.
Normalerweise würde ich LOCK TABLE nehmen, aber da gibt es ein Problem.
Aus irgendwelchen unerfindlichen Gründen hat mein Provider die DB dazuveranlasst, das ich meine Tabellen nicht mit LOCK TABLE sperren kann.
Nun folgende Aushilfslösung:
In einer Extratabelle eine Zeile hinzufügen, in der steht, das Tabelle XYZ gesperrt ist.
UPDATES machen
Extratabelleneintrag wieder löschen.
In meiner DB Klasse, frag ich nun immer mit ab ob die Tabelle gesperrt ist oder nicht.
Angenommen, das geht (noch nicht probiert)
Kann ich eine Schleife machen, die solange durchlaufen wird, bis die Tabelle wieder frei ist?
Also Theoretisch ist das eine gute Idee, ich habe nur Angst, das dadurch der Apache ein wenig zu überstrapaziert wird.
Denn angenommen es greifen 3 Leute gleichzeitig auf die Tabelle zu
dann wartet der letzte am längsten, was ja verkraftbar ist, allerdings weiß ich nicht wie sich das auf den Apachen auswirkt
Jemand Ahnung bzw, ne andere Idee?