![]() |
![]() |
![]() ![]()
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:
Niestety, na SELECT COUNT jest syntax error. Innym rozwiązaniem jest dodanie jedynki do aktualnego stanu liczby newsów w kategorii:
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. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Drugi trigger wygląda jak najbardziej prawidłowo. Zauważ tylko, że używasz niewłaściwych kolumn w warunku WHERE. Wydaje mi się, że w tabeli cms_news_categories_handler zapisujesz na pewno identyfikator kategorii (handler_cat), tymczasem w warunku WHERE nie porównujesz tego z kluczem głównym (identyfikatorem kategorii) z tabeli cms_news_categories, ale porównujesz z liczbą powiązanych z daną kategorią artykułów (cat_meta_count). Gołym okiem widać, że coś jest nie tak.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 00:54 |