Bereinigen der consume-Tabelle unter Berücksichtigung der gespeicherten Kartenausschnitte

Aus kvwmap
Wechseln zu: Navigation, Suche

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'

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.