View Single Post
Old 07-03-2018, 17:48   #1
zebmckey
Member
 
Iscritto dal: Apr 2016
Messaggi: 72
[SQL] trigger con condizione

Buongiorno, io ho una tabella corsi così composta:
Codice:
CREATE TABLE `corsi` (
  `idcorso` int(10) NOT NULL,
  `user` int(10) NOT NULL,
  `tipo_corso` int(10) NOT NULL,
  `data_inizio` date NOT NULL,
  `data_fine` date NOT NULL,
  `superato` enum('Y','N') DEFAULT NULL,
  `giudizio` mediumtext
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Su questa tabella ho attivato un trigger che si attiva quando cancello il record
Codice:
DELIMITER $$
CREATE TRIGGER `archivia_corso` 
BEFORE DELETE ON `corsi`
 FOR EACH ROW 
INSERT INTO bcorsi 
SELECT OLD.idcorso, OLD.user, OLD.tipo_corso, OLD.data_inizio, OLD.data_fine, OLD.superato, OLD.giudizio
$$
DELIMITER ;
tutto funziona perfettamente. Io vorrei modificare questo trigger per fare in modo che si attivi quando "superato=Y".
e ho fatto varie prove una, quella che ritengo più plausibile è questa:
Codice:
DELIMITER $$
CREATE TRIGGER `archivia_corso`AFTER UPDATE ON `corsi`
FOR EACH ROW
IF NEW.superato=Y
THEN
INSERT INTO bcorsi 
SELECT NEW.idcorso, NEW.user, NEW.tipo_corso, NEW.data_inizio, NEW.data_fine, NEW.superato, NEW.giudizio
ENDIF
$$
DELIMITER ;
Ma non va bene lo so già di mio che non funziona!!
Non mi sto raccapezzando, anche perchè vorrei che funzionasse come il primo trigger, cioè quando fa l'update mi sposta la riga nella tabella bcorso.
non trovo una soluzione mi potete aiutare?
Grazie
zebmckey è offline   Rispondi citando il messaggio o parte di esso