cancellare vecchi messaggi dal db

  • Creatore Discussione Creatore Discussione fe3e
  • Data di inizio Data di inizio

fe3e

Nuovo Utente
18 Gen 2009
16
0
0
mi serve un modo per cancellare dei vecchi messaggi dal db ( se la data di inserimento del messaggio è superata da 10 giorni ) ma non so se implementare questa cosa usando php o usando qualche file batch sql stand alone sempre attivo sul server.. qualche professionista mi può dire di solito come si fa? e cosa si usa per farlo: uno script php o uno sql?

(uso mysql)
 
ciao
dipende da come è il formato della data nella tabella
grosso modo puoi fare cosi (trasformando in php)

data_limite= data_oggi - 10 giorni

query=delete from mia_tabella where data_registrata < data_limite

fai attenzione che se le date sono in formato italiano gg.mm.aa
la data 01.12.2009 è minore di 31.01.09 (che non è logicamente vero)
 
ciao scusa effettivamente mi sono spiegato male, 0:)
non sto chiedendo come realizzare la query, quella la so fare, mi chiedo invece dove mettere questa query, cioè se è creare uno script in php e lasciarlo sempre in esecuzione sul server, oppure se creare un programmino esterno in un linguaggio qualsiasi che parta ad una certa ora e che esegua la query ogni giorno, o altre soluzioni ancora..
tu cosa consigli?
 
ciao
io per eliminare messaggi vecchi ho fatto fatto uno script in php.
in pratica in un mio sito ho una spece di guest-book, chiamando la pagina del guest automaticamente leggo la data "oggi" e parte l'eliminazione dei dati più vecchi di tot gg
in un altro la cancellazione viene avviata solo dietro mio comando
in un altro ancora la cancellazione si avvia solo se viene introdotto un nuovo messaggio
anche qui il metodo "dipende" da cosa vuoi fare o quanti messaggi hai e dalla frequenza con cui vengono immessi
se non sono innumerevoli puo andar bene uno dei sistemi che ho utilizzato, se al contrario ricevi un numero spropositato di messaggi forse è meglio optare per un programma sempre attvivo

spero di esserti stato d'aiuto
 
ciao sei stato chiarissimo grazie mille.
un ultima domanda: se decido di usare un programmino esterno per cancellare i messaggi vecchi non c'è il rischio che visto che anche il server web con php scrive sul db si possa creare un qualche tipo di conflitto? oppure dici che mysql sa gestire tutto?
 
ciao
non ti so dire esattamente per programmi esterni.
con php nelle query di inseret, update e delete, nei casi che ti ho citato, ho inserito la clausola LOW_PRIORITY per ritardare l'esecuzione dell'aggiorna/leggi/cancella ad un momento nel quale la tabella non è impegnata da altri client ed evitare conflitti.
 
ok grazie a tutti per i consigli. le cron-jobs funzionano solo su linux
 

Discussioni simili