Bereinigen der consume-Tabelle unter Berücksichtigung der gespeicherten Kartenausschnitte
Aus kvwmap
Um Einträge aus der Tabelle u_consume zu löschen, ohne dabei gespeicherte Kartenausschnitte zu löschen, kann man folgendes SQL-Statement verwenden:
DELETE u_consume FROM u_consume LEFT JOIN u_consume2comments ON u_consume.user_id = u_consume2comments.user_id AND u_consume.stelle_id = u_consume2comments.stelle_id AND u_consume.time_id = u_consume2comments.time_id WHERE u_consume2comments.user_id IS NULL
- --Markus Hentschel 09:46, 28. Jun 2007 (CEST) Wenn man die Einträge bis zu einem bestimmten Datum behalten will, muss man das WHERE noch ein bißchen erweitern, z.B. so:
DELETE u_consume FROM u_consume LEFT JOIN u_consume2comments ON u_consume.user_id = u_consume2comments.user_id AND u_consume.stelle_id = u_consume2comments.stelle_id AND u_consume.time_id = u_consume2comments.time_id WHERE u_consume2comments.user_id IS NULL AND u_consume.time_id < '2007-01-01'
- --Reißland 14:17, 29. Okt 2007 (CET)
Oder:
DELETE u_consume FROM u_consume LEFT JOIN u_consume2comments ON u_consume.user_id = u_consume2comments.user_id AND u_consume.stelle_id = u_consume2comments.stelle_id AND u_consume.time_id = u_consume2comments.time_id WHERE u_consume2comments.user_id IS NULL AND DATE_SUB(CURDATE(),INTERVAL 6 MONTH) >u_consume.time_id
wenn die Zugriffe nach einem bestimmten Zeitraum (hier 6 Monate) gelöscht werden sollen.