multiple trigger

0

Mam tabelę z zawodnikami (pid,name,cid...), klubami (cid,name), sezonami (sid, name, aktualny ...) i stworzyłem tabelę transfer (tid, sezon , zawodnik, z_klubu, do_klubu) i chciałem stworzyć wyzwalacz który sprzawdza w momencie dodawania czy transfer dotyczy aktualnego sezonu, a jeśli tak to przenosi zawodnika z jednej drużyny do drugiej. Kod trigera

DELIMITER $$

CREATE TRIGGER TRANSF AFTER INSERT ON TRANSFER 
FOR EACH ROW
BEGIN
DECLARE AKT BOOLEAN;
SELECT AKTUALNY FROM SEZONY WHERE SEZONY.SID = NEW.SEZON INTO AKT;
IF AKT THEN 
  UPDATE ZAWODNICY SET CID = NEW.TO_T;
END IF;
END
$$
DELIMITER ;

MySql zwraca mi błąd:
#1235 - This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
Wiem co oznacza błąd, ale w związku z tym mam pytanie jak mam zrealizować zamierzenie które opisałem na wstępie.

0

Poradziłem sobie z problemem, najpierw stworzyłem procedure

DELIMITER $$

CREATE PROCEDURE TRANP (IN PLAY INT(4), IN CLUB INT(4)) 
BEGIN
    UPDATE ZAWODNICY SET CID = CLUB WHERE PID = PLAY;
END

$$

a dopiera później trigger.

DELIMITER $$
 
CREATE TRIGGER TRANSF AFTER INSERT ON TRANSFER 
FOR EACH ROW
BEGIN
DECLARE AKT BOOLEAN;
SELECT AKTUALNY FROM SEZONY WHERE SEZONY.SID = NEW.SEZON INTO AKT;
IF AKT THEN 
  TRANP(NEW.ZAWODNIK, NEW.TO_T);
END IF;
END
$$
DELIMITER ;

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.