Avatar billede kama Nybegynder
16. januar 2001 - 10:18 Der er 4 kommentarer og
3 løsninger

Automatisk sletning af tupler efter dato.

Jeg er fornyligt begyndt på MySQL + PHP og har efterhånden fået en lang liste med spørgsmål. Jeg starter nu fra toppen af:

Jeg er ude efter en snedig måde, at få slettet tupler i en tabel automatisk. I tabellen har jeg en dato-attribut for hvornår tuplen er indsat. Jeg ønsker at få slette tupler automatik, når de er 14 dage gamle. Hvordan gør jeg det på en elegant måde?
Avatar billede disky Nybegynder
16. januar 2001 - 10:23 #1
hvad pokker er en \'tupler\' ???

men du kan bare lave en query der siger slet alt hvor dato er ældrer end (idag - 14 dage)
Avatar billede defrost Nybegynder
16. januar 2001 - 10:35 #2
En tuple er bare et andet ord for række eller record.
Avatar billede j_r Nybegynder
16. januar 2001 - 10:38 #3
Lav en PHP-side, der sletter dem. Der desværre ikke triggers i MySQL.
DELETE FROM tabel WHERE dagsdato-tabel.dato>14
Avatar billede mkelle1 Nybegynder
16. januar 2001 - 11:06 #4
Hej Kama

Da du ikke har fortalt datoformatet på datoen i tabellen kan man jo ikke fortælle præcis hvordan du skal gøre, men jeg forudsætter at du har brugt php\'s time() funktion. En måde at sikre at ingen der besøger siden ser ínformationer fra tupler som er mere en 14 dage gammel er at starte siden med ca. følgende:

<?
$nu=time();
$sql=\"delete from din_tabel where ($nu-tabel_dato)>14*60*60*24\";
mysql_query($sql);
?>
<html>o.s.v.

Dette gør at hver gang siden bliver loadet vil den slette alle poster som er mere end 14 dage gamle inden resten af siden bliver loadet.

Mads


Avatar billede disky Nybegynder
16. januar 2001 - 11:07 #5
Mads:

Er det ikke ret \'grimt\' at gøre det hver gang, et Cron job som kører en gang om dagen ville vist være bedre.

Eller at der i den Select han bruger til at vælge poster med, tages hensyn til datoen, og så kan han fra sin admin page, vælge at slette ældre poster.

Hilsen Søren
Avatar billede mkelle1 Nybegynder
16. januar 2001 - 11:25 #6
Søren>
Du kan da godt kalde det grimt. Men det er ihverfald enkelt.
Jo et Cron-job er selvfølgelig optimalt, men ikke altid muligt for alle.

Mads
Avatar billede disky Nybegynder
16. januar 2001 - 11:27 #7
det kan godt være det er enkelt.

Men at køre en \'delete\' i en database hver gang en bruger kigger forbi er totalt overkill.
Og bestemt ikke noget man ville få ros for hos en database expert.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester