Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Trigger, przeliczanie i aktualizacja
SaMi
post
Post #1





Grupa: Zarejestrowani
Postów: 173
Pomógł: 14
Dołączył: 27.03.2004
Skąd: Białystok

Ostrzeżenie: (0%)
-----


Witam, na początek przedstawię swój zamiar, otóż:
chcę stworzyć dział z plikami do pobrania mam przygotowane dwie tabele jedna to KATEGORIE druga to PLIKI. Chcę przy wyświetlaniu kategorii wyświetlić ile plików jest do danej kat. przypisana. W tym celu w tabeli kategorie stworzyłem pole ilosc_plikow. Które chcę aktualizować przy każdorazowym dodaniu nowego pliku do tabeli PLIKI. Do tego tak mi się przynajmniej wydaje będzie najlepiej nadawał się trigger. Teraz pytanie, czy jest to poprawny zapis ponieważ jest to mój pierwszy kontakt z Triggerami:

  1. DELIMITER //
  2. CREATE TRIGGER przelicz AFTER INSERT ON pliki_do_pobrania
  3. FOR EACH ROW
  4. BEGIN
  5. SELECT COUNT(*) INTO @ile FROM pliki_do_pobrania WHERE kategoria = NEW.kategoria;
  6. UPDATE pliki_kategorie SET ilosc_kat=@ile;
  7. END;//


--------------------
Zapraszam na spływy kajakowe rzekami podlasia www.splywy-kajakiem.pl
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


IIRC w MySQL zmienne zadeklarowane przy użyciu @ są zmiennymi sesyjnymi o globalnym zasięgu - raczej nie powinieneś ich tu używać - skorzystaj z DECLARE. Chociaż na dobrą sprawę mógłbyś zrobić:
  1. UPDATE pliki_kategorie SET ilosc_kat = (SELECT ...) WHERE id = NEW.kategoria;
Chociaż w sumie i to jest nieco przekombinowane bo wystarczy po prostu zwiększyć wartość w tej kolumnie o jeden:
  1. UPDATE pliki_kategorie SET ilosc_kat = ilosc_kat + 1 WHERE id = NEW.kategoria;
Go to the top of the page
+Quote Post
SaMi
post
Post #3





Grupa: Zarejestrowani
Postów: 173
Pomógł: 14
Dołączył: 27.03.2004
Skąd: Białystok

Ostrzeżenie: (0%)
-----


Dzięki, niestety okazało się nazwa.pl gdzie mam konto ma zablokowane dostęp do super użytkownika przez co nie ma dostępu do triggerów i wielu innych dobrodziejstw mysql5.


--------------------
Zapraszam na spływy kajakowe rzekami podlasia www.splywy-kajakiem.pl
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 11:31