You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
whooshy/sql/bingo/clearExpired.sql

51 lines
1.3 KiB
SQL

/*-- remove grid-word connections for expired lobbys
DELETE FROM bingo.grid_words
WHERE EXISTS(
SELECT grids.lobby_id FROM bingo.grids
WHERE EXISTS (
SELECT lobbys.id FROM bingo.lobbys
WHERE lobbys.id = grids.lobby_id
AND NOW() > lobbys.expire
)
);
-- remove grids for expired lobbys
DELETE FROM bingo.grids
WHERE EXISTS (
SELECT lobbys.id FROM bingo.lobbys
WHERE lobbys.id = grids.lobby_id
AND NOW() > lobbys.expire
);
-- remove words for expired lobbys
DELETE FROM bingo.words
WHERE EXISTS (
SELECT lobbys.id FROM bingo.lobbys
WHERE lobbys.id = words.lobby_id
AND NOW() > lobbys.expire
);
-- remove lobby-player connections for expired lobbys or players
DELETE FROM bingo.lobby_players
WHERE EXISTS (
SELECT lobbys.id FROM bingo.lobbys
WHERE lobbys.id = lobby_players.lobby_id
AND NOW() > lobbys.expire
) OR EXISTS (
SELECT players.id FROM bingo.players
WHERE players.id = lobby_players.player_id
AND NOW() > players.expire
);
*/
-- remove expired lobbys
DELETE FROM bingo.lobbys
WHERE NOW() > lobbys.expire;
-- remove expired players
DELETE FROM bingo.players
WHERE NOW() > players.expire;
/*AND NOT EXISTS (
SELECT lobbys.admin_id FROM bingo.lobbys
WHERE lobbys.admin_id = players.id
);*/