Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> TRIGGER zliczający rekordy
Athlan
post
Post #1





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


Witam,

posiadam tabelę cms_news, cms_news_categories oraz cms_news_categories_handler (wiążącą newsa z kategorią). Chciałbym utworzyć trigger zmieniający wartość pola cat_meta_count w tabeli cms_news_categories na ilość aktywnych powiązań newsów z daną kategorią - w skrócie - ile jest newsów w kategorii, do której dodaje powiązanie.

Próbowałem czegoś takiego:
  1. CREATE TRIGGER news_categories_count AFTER INSERT ON cms_news_categories_handler
  2. FOR EACH ROW
  3. BEGIN
  4. UPDATE cms_news_categories SET cat_meta_count = SELECT COUNT(handler_cat, handler_item) FROM cms_news_categories_handler WHERE cat_meta_count = NEW.handler_cat;
  5. END;

Niestety, na SELECT COUNT jest syntax error. Innym rozwiązaniem jest dodanie jedynki do aktualnego stanu liczby newsów w kategorii:
  1. CREATE TRIGGER news_categories_count AFTER INSERT ON cms_news_categories_handler
  2. FOR EACH ROW
  3. BEGIN
  4. UPDATE cms_news_categories SET cat_meta_count = cat_meta_count + 1 WHERE cat_meta_count = NEW.handler_cat;
  5. END;

Tu z kolei otrzymuję komunikat:
Cytat
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4


Delimiter nie pomaga. Przykład jest dosłownie zerżnięty (kolokwialnie ujmując) z manuala.

Z góry dzięki za pomoc,
Athlan.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 23.08.2025 - 09:01