mysql bedingtes INSERT mit Rückgabe

Cymatoxa

Mitglied
Hallo,
ich bin seit einer Weile mit mysql am Arbeiten, allerdings beschränkt sich mein Wissen auf das Grundlegende.
Ich habe eine Datenbank für ein Rundenbasiertes Spiel. Eine Runde dauert immer 15 Spiele (wobei das allgemein variabel ist). Wenn eine Runde begonnen wird, wird überprüft, ob noch ein Spiel des Spielers für diese Runde offen ist und falls ja dessen ID zurückgegeben:
SQL:
SELECT game_id
FROM game
WHERE round_id = @round_id AND player_id = @player_id
AND [längerer Code, der per Subquery in anderen Tabellen überprüft, ob das Spiel noch läuft]
Jetzt mein problem: Falls diese ID nicht gefunden wurde, soll ein neues Spiel eingefügt werden (einfaches Insert, kein Problem an sich) und die neue game_id (ist ein AUTO_INCREMENT Feld) zurückgegeben werden.
Ich weiß, dass ich INSERT ... SELECT benutzen kann, und dass INSERT nur ausgeführt wird, falls SELECT etwas zurückliefert, aber ich bin mir nicht sicher, wie ich das ganze umsetzen kann. Geht das überhaupt in einem Query oder muss ich das unterteilen und die Datenbank zwischendurch locken? (Wie gesagt: die Abfrage zum Testen, ob das Spiel noch aktiv ist, ist relativ komplex).

Ich hoffe ihr versteht mein Problem und könnt mir helfen :)

Liebe Grüße
 

Neue Beiträge

Zurück