webForumDet fria alternativet

Uppdatera databasvärde efter x antal dagar.

5 svar · 599 visningar · startad av elky

elkyMedlem sedan feb. 201320 inlägg
#1

Hej!

Jag sitter och klurar på en funktion som skall ändra ett mysql-databasvärde efter x antal dagar.

Säg att varaiabeln faktureras per automatik alltid skall ändras från 0 till 1 på varje orderrad när det har gått 16 dagar från att denna lades in.

Vilket tankesätt skall jag nyttja mig av?

Tack på förhand, E Niklasson

prplxrMedlem sedan juni 2012582 inlägg
#2

Det går inte. Du får istället ha ett fält med datumet då posten skapades. För att sedan automatisera det hela får du skapa en schemalagd aktivitet på servern som kör ett script som kontrollerar ifall det gått 16 dagar eller mer.

Någon automation i den benämningen finns ej i MySQL.

Den här frågan dyker upp ofta. Du vet väl om att du kan söka efter äldre trådar?

JojoxxMedlem sedan juni 20004 308 inlägg
#3

Borde gå med ett event i mysql, typ:

CREATE EVENT myevent
    ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 24 HOUR
    DO
      UPDATE mydatabase.orderrad SET faktureras = 1 WHERE orderdate < TIMESTAMPADD(DAY,-16,NOW());

CURRENT_TIMESTAMP kan du byta ut mot en timestamp vid midnatt e.dyl.

elkyMedlem sedan feb. 201320 inlägg
#4

Jojoxx skrev:

Borde gå med ett event i mysql, typ:

CREATE EVENT myevent
    ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 24 HOUR
    DO
      UPDATE mydatabase.orderrad SET faktureras = 1 WHERE orderdate < TIMESTAMPADD(DAY,-16,NOW());

CURRENT_TIMESTAMP kan du byta ut mot en timestamp vid midnatt e.dyl.

Jag kollade lite närmare på det där med att köra det som ett event Jojoxx,
om man sparar orderdatumet i tabellen med TIMESTAMP DEFAULT CURRENT_TIMESTAMP, så borde det kanske fungera med något liknande detta, eller är jag helt ute och seglar?

CREATE EVENT newEvent
ON SCHEDULE EVERY 1 DAY DO 
UPDATE orderrader SET faktureras=1 WHERE orderdatumet <= DATE_SUB(NOW(), INTERVAL 16 DAY) ;
prplxrMedlem sedan juni 2012582 inlägg
#5

Där ser man. Jag har alltid hört att detta INTE går att göra med MySQL. Tydligen ska man inte bara lita på vem som helst. :-(

JojoxxMedlem sedan juni 20004 308 inlägg
#6

elky skrev:

så borde det kanske fungera med något liknande detta, eller är jag helt ute och seglar?

Ser ut att borde fungera. Jag läste dock bara innantill i mysql-dokumentationen, så jag har inte testat.

129 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)