Я имел в виду создание таблицы журнала, затем триггер для каждого возможного действия (вставка, обновление, удаление), чтобы заполнить ее, а затем процедуру анализа таблицы журнала, выполняющей любые соответствующие действия и удаляющей ее после завершения.

я есть стол

    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','');

В приведенных выше данныхстаршинство (2,40,6) сотрудника будет меняться каждый раз, когда продвижение по службе происходит на основетип (Р03, H1, L1) сотрудника.

Что нам действительно нужно, это триггер, который обновляетстаршинство всех других сотрудников длятип когда один из сотрудников обновляется или вставляется или удаляется.

Пример: предположимEMPNO 4620 имеетстаршинство 5 итип A1, когда мы удаляемEMPNO в таблице seniority_master,старшинство ниже работников того жетип обновляться автоматически с приращением или уменьшением на основестаршинство, Аналогичная процедура для операций обновления и вставки выполнена.

Я могу создать триггеры AFTER INSERT и AFTER UPDATE для своей программы.

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 ;

После обновления:

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 ;

Помогите мне в приведенном выше сценарии создания триггера.

Ответы на вопрос(0)

Ваш ответ на вопрос