Как сделать триггер для добавления в поле таблицы в MYSQL - PullRequest
0 голосов
/ 21 мая 2019

Я хочу сделать триггер на MYSQL, который увеличивает значение в поле таблицы

DROP DATABASE IF EXISTS Lollipop;
CREATE DATABASE Lollipop;
USE Lollipop;

/* Sucursales */ 
DROP TABLE IF EXISTS Sucursales;
CREATE TABLE IF NOT EXISTS Sucursales (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    Direccion VARCHAR(50),
    Numero_empleados DECIMAL(10) DEFAULT '0',
 PRIMARY KEY (id)
) AUTO_INCREMENT=1;

/* Empleados */ 
DROP TABLE IF EXISTS Empleados;
CREATE TABLE IF NOT EXISTS Empleados (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    Nombres VARCHAR(25),
    Tipo_de_sangre VARCHAR(3),
    Seguro_social VARCHAR(11) NOT NULL,
    Fecha_nacimiento DATE NOT NULL,
    ID_Sucursal INT UNSIGNED NOT NULL,
 PRIMARY KEY (id)
) AUTO_INCREMENT=1;

CREATE TRIGGER add_empleados
BEFORE INSERT ON Empleados
UPDATE Sucursales
SET Numero_empleados = Numero_empleados + 1
WHERE id = new.ID_Sucursal;

Когда я пытаюсь вставить триггер, он отправляет мне«ОШИБКА 1064 (42000): у вас ошибка в синтаксисе SQL»

1 Ответ

0 голосов
/ 26 мая 2019

Да, FOR EACH ID не является обязательным ?

CREATE TRIGGER add_empleados BEFORE INSERT ON Empleados UPDATE Sucursales SET FOR EACH Numero_empleados = Numero_empleados + 1 WHERE id = new.ID_Sucursal;

...