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 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:
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, dass ich immer die korrekte ID bekomme - unabhängig, ob alt oder gerade neu eigefügt. Geht das überhaupt in einem Query oder muss ich das unterteilen und die Datenbank zwischendurch locken? Wie würde das dann aussehen?
Ich hoffe ihr versteht mein Problem und könnt mir helfen
Liebe Grüße
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 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:
Code:
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]
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, dass ich immer die korrekte ID bekomme - unabhängig, ob alt oder gerade neu eigefügt. Geht das überhaupt in einem Query oder muss ich das unterteilen und die Datenbank zwischendurch locken? Wie würde das dann aussehen?
Ich hoffe ihr versteht mein Problem und könnt mir helfen
Liebe Grüße