Hallo,
nehmen wir an, es existiert folgende MySQL-Tabelle (test_tabelle):
Über ein PHP Script wird an 2 voneinander unabhängigen Orten der Letzte Datensatz abgefragt (wert = gamma).
Eine IF-Abfrage prüft, ob der letzte Wert tatsächlich "gamma" ist und führt bei "true" ein Query (2 Mal) aus:
Meine Frage lautet: ist es theoretisch möglich, dass beide Inserts erfolgreich ausgeführt werden wenn das Script sozusagen an beiden Orten in der selben Nanosekunde aufgerufen wird, oder werden die SQL-Querys vom Server willkürlich in einer bestimmten Reihenfolge ausgeführt, so dass am Ende nur ein Query ausgeführt wird, weil der andere am IF gescheitert ist?
Bitte behandelt diese Frage sehr abstrakt, ich bin mir im Klaren, dass es aufgrund von Latenz usw. surreal ist, eine Abfrage zur selben Zeit an den Server zu senden. Irgendwo hatte ich mal gelesen, dass eine Tabelle immer in dem Moment für andere Zugriffe blockiert ist, wenn eine Abfrage stattfindet. Ich möchte daher wissen wie es sich verhält, wenn das Script 2 Mal zur selben Zeit aufgerufen wird
Herzlichen Dank schon mal für eure Antworten.
nehmen wir an, es existiert folgende MySQL-Tabelle (test_tabelle):
Code:
| id | wert |
|----|-------|
| 1 | alpha |
| 2 | beta |
| 3 | gamma |
Über ein PHP Script wird an 2 voneinander unabhängigen Orten der Letzte Datensatz abgefragt (wert = gamma).
Eine IF-Abfrage prüft, ob der letzte Wert tatsächlich "gamma" ist und führt bei "true" ein Query (2 Mal) aus:
PHP:
if($wert=='gamma') {
mysql_query('INSERT INTO test_table (id, wert) VALUES ("4", "delta");');
}
Meine Frage lautet: ist es theoretisch möglich, dass beide Inserts erfolgreich ausgeführt werden wenn das Script sozusagen an beiden Orten in der selben Nanosekunde aufgerufen wird, oder werden die SQL-Querys vom Server willkürlich in einer bestimmten Reihenfolge ausgeführt, so dass am Ende nur ein Query ausgeführt wird, weil der andere am IF gescheitert ist?
Bitte behandelt diese Frage sehr abstrakt, ich bin mir im Klaren, dass es aufgrund von Latenz usw. surreal ist, eine Abfrage zur selben Zeit an den Server zu senden. Irgendwo hatte ich mal gelesen, dass eine Tabelle immer in dem Moment für andere Zugriffe blockiert ist, wenn eine Abfrage stattfindet. Ich möchte daher wissen wie es sich verhält, wenn das Script 2 Mal zur selben Zeit aufgerufen wird

Herzlichen Dank schon mal für eure Antworten.