Hej Alle,
Jeg har lavet en EVENT der skal tjekke en tabel hver 5 minut, og hvis der er records der er mere end en time gammel, skal de slettes fra tabellen. Derudover skal jeg bruge info fra den række der slettes til at opdatere to andre tabeller. - Det er ret logisk hvad jeg prøver på når I ser hvad jeg har skrevet i den EVENT.
Jeg har dog ikke prøvet det før, så jeg kunne godt bruge en lære her fra til at renskrive mit rod, til en EVENT der faktisk ville kunne virke..
Markeret med trin: 1,2,3,4
Here we go:
- delimiter |
-
- CREATE EVENT delete_cart_items
- ON SCHEDULE
- EVERY 5 MINUTES
- COMMENT 'Skal slette emner i cart der er mere end en time gammel'
- DO
- BEGIN
- COMMENT 'Tag de informationer der skal bruges til at opdatere de andre tabeller med'
- 1) SELECT produkt_id, antal, str FROM cart WHERE added_date >= added_date + 1 hour
-
- COMMENT 'OPDATER så stock i products tabellen med brug af info fra cart'
- 2) UPDATE products SET stock = stock + cart.antal WHERE produkt_id = cart.produkt_id
-
- COMMENT 'OPDATER så stock i sizes tabellen med brug af info fra cart'
- 3) UPDATE sizes SET antal = antal + cart.antal WHERE size = cart.str AND product_id = cart.produkt_id
-
- COMMENT 'Og til sidst: Slet de rækker der har været i tabellen i minimum en time'
- 4) DELETE FROM cart WHERE added_time >= added_time + 1 hour
- END |
- delimiter ;
Se, det er jo ret lige til at se hvad jeg gerne vil have skal ske her, men hvordan skriver man det korrekt ind i sql? - Sikkert ikke sådan som der står ovenfor :-)
Indlæg senest redigeret d. 17.02.2012 18:10 af Bruger #16555