¿Cómo incrementar en SQL usando un disparador?

Así que tengo una mesa que contiene una lista de cocinas y un total de cuántos restaurantes hay con esa cocina. (por ejemplo, italiano | 7)

Estoy intentando configurar un disparador en phpMyAdmin que boostá el total cada vez que se agregue un nuevo restaurante a la base de datos. Aquí está lo que tengo hasta ahora:

CREATE TRIGGER UpdateStats AFTER INSERT ON Restaurant BEGIN UPDATE RestaurantStats SET TotalRestaurants = TotalRestaurants + 1 WHERE Cusine = NEW.cusine; END; 

Pero sigo recibiendo un mensaje de error y me dice que tiene que ver con mi syntax. ¿A dónde me voy mal? Seguí el ejemplo que vi bastante bien.

Aquí está el mensaje de error:

 #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 'BEGIN UPDATE RestaurantStats SET TotalRestaurants = TotalRestaurants + 1 WHERE' at line 2 

tienes que tener for each row

 CREATE TRIGGER UpdateStats AFTER INSERT ON Restaurant FOR EACH ROW UPDATE RestaurantStats SET TotalRestaurants = TotalRestaurants + 1 WHERE Cusine = NEW.cusine; 

Debe usar FOR EACH ROW y deshacerse de BEGIN … END de la siguiente manera:

 CREATE TRIGGER UpdateStats AFTER INSERT ON Restaurant FOR EACH ROW UPDATE RestaurantStats SET TotalRestaurants = TotalRestaurants + 1 WHERE Cusine = NEW.cusine; 

BEGIN … END solo se usa para múltiples consultas en el mismo activador y requiere la redefinición del carácter de terminación. Así que tu primero; Está terminando la instrucción y dejando el COMIENZO abierto sin un FIN.

intente con “para cada fila”:

 CREATE TRIGGER UpdateStats AFTER INSERT ON Restaurant FOR EACH ROW BEGIN UPDATE RestaurantStats SET TotalRestaurants = TotalRestaurants + 1 WHERE Cusine = NEW.cusine; END; 

No lo he intentado, no estoy seguro de si funciona …