elkyMedlem sedan feb. 201320 inlägg 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 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 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
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 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
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.