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:
CREATE TRIGGER news_categories_count AFTER INSERT ON cms_news_categories_handler FOR EACH ROW BEGIN 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; END;
Niestety, na SELECT COUNT jest syntax error. Innym rozwiązaniem jest dodanie jedynki do aktualnego stanu liczby newsów w kategorii:
CREATE TRIGGER news_categories_count AFTER INSERT ON cms_news_categories_handler FOR EACH ROW BEGIN UPDATE cms_news_categories SET cat_meta_count = cat_meta_count + 1 WHERE cat_meta_count = NEW.handler_cat; 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.