Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Trigger autoaktualizujący co dwa tygodnie
Forum PHP.pl > Forum > Bazy danych > MySQL
cv65
Witam

Piszę trigger do prestashop-u mam już coś takiego:

  1. CREATE TRIGGER change_active_after_update AFTER UPDATE ON ps_stock_available
  2. FOR EACH ROW
  3. BEGIN
  4. UPDATE ps_product_shop SET active=0 WHERE id_product IN (SELECT id_product FROM ps_stock_available WHERE quantity=0);
  5. UPDATE ps_product_shop SET active=1 WHERE id_product IN (SELECT id_product FROM ps_stock_available WHERE quantity>0);
  6. END


Chodzi przede wszystkim o dodanie opóźnienia 2 tyg, tylko produkty które dopiero zmienią swój stan, a nie wszystkie.
Oraz taki myk, żeby tylko wracały te które wcześniej były dostępne w sklepie (bo sklep ma masę produktów których nie sprzedajemy online, a po prostu jest zintegrowana baza z magazynem).

Meczę się już z tym któryś dzień z rzędu i nie mam pomysłu
Pozdrawiam
dragger
W MySQL wyzwalacze wywoływane są "od razu" przed lub po wystąpieniu określonego zdarzenia. Nie ma możliwości opóźnienia ich o 2 tygodnie.

W opisanym przypadku najlepiej dodać dodatkową kolumnę w której będzie zapisywany czas ostatniej aktualizacji lub po prostu informacja że rekord został zaktualizowany. Następnie za pomocą CRONa należy wywoływać skrypt, który wykona określone działania na rekordach wg daty aktualizacji lub "oznaczonych" jako zaktualizowane w ciągu ostatnich 2tyg.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.