Activador para insertar y actualizar múltiples registros en la misma tabla en MySQL

Tengo mesa

    CREATE TABLE `seniority_master` (
  `EMPNO` varchar(4) NOT NULL,
  `NAME` varchar(40) DEFAULT NULL,
  `GENDER` varchar(10) DEFAULT NULL,
  `CATGRY` varchar(10) DEFAULT NULL,
  `DOB` date DEFAULT NULL,
  `DESG` varchar(40) DEFAULT NULL,
  `DESGTYPE` varchar(100) DEFAULT NULL,
  `SENIORITY` int(4) NOT NULL,
  `EMPTYPE` varchar(45) DEFAULT NULL,
  `TYPE` varchar(45) DEFAULT NULL,
  `QUAL` varchar(200) DEFAULT NULL,
  `BRANCH` varchar(30) DEFAULT NULL,
  `DOJ` date DEFAULT NULL,
  `DOCA` date DEFAULT NULL,
  `PAYSCALE` varchar(45) DEFAULT NULL,
  `OTHERDESC` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`EMPNO`,`SENIORITY`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `seniority_master` VALUES ('1389','MUNNA','Male','OBC','195,9-10-31','SENIOR RECORD SORTER (ASS-I)','',2,'STAFF','P03','4th','AGRA','1982-07-01','2007-07-01','12100-24500','');
INSERT INTO `seniority_master` VALUES ('1391','RAJENDER SINGH','MALE','UR','1965-07-09','AM (GENERAL)','GENERAL',40,'OFFICERS','H1','INTER  ','AGRA','1984-06-22','2013-09-05','16400-40500','');
INSERT INTO `seniority_master` VALUES ('1392','MADAN GOPAL','Male','OBC','1966-07-04','SENIOR OFFICE MANAGERS-I (GENERAL)','',6,'STAFF','L1','10TH','AGRA','1984-08-17','2015-04-17','15600-30500','');

En los datos anteriores elantigüedad (2,40,6) del empleado va a cambiar cada vez que se realice la promoción en función de latipo (P03, H1, L1) del empleado

Lo que realmente necesitamos es un disparador que actualice elantigüedad de todos los otros empleados para eltipo cuando uno de los empleados se actualiza o inserta o elimina.

Ej: supongamosempno 4620 tieneantigüedad 5 ytipo A1, cuando eliminamos el particularempno en la tabla seniority_master, elantigüedad de abajo empleados de la mismatipo para actualizarse automáticamente por incremento o decremento basado en elantigüedad. Procedimiento similar para las operaciones de actualización e inserción realizadas.

Puedo crear desencadenantes DESPUÉS DE INSERTAR y DESPUÉS DE ACTUALIZACIÓN para el requisito de mi programa.

DELIMITER $
CREATE TRIGGER after_seniority_insert 
    AFTER INSERT ON seniority_master
    FOR EACH ROW 
BEGIN
   INSERT INTO emp_positions
   ( empno,
     position,
     dop)
   VALUES
   ( NEW.empno,
     NEW.desg,
     NEW.doca );
END$
DELIMITER ;

Despúes de actualizar:

DELIMITER $
CREATE TRIGGER after_seniority_update 
    AFTER UPDATE ON seniority_master 
    FOR EACH ROW 
BEGIN
IF (old.desg != new.desg &&
          old.doca != new.doca) then
   INSERT INTO emp_positions
   ( empno,
     position,
     dop)
   VALUES
   ( NEW.empno,
     NEW.desg,
     NEW.doca );
END IF;
END$
DELIMITER ;

Ayúdame en el escenario anterior para crear el disparador.

Respuestas a la pregunta(0)

Su respuesta a la pregunta