Ecco un esempio di uso delle funzioni nei trigger di MySql 5:
DELIMITER //
CREATE FUNCTION max_prov_pos (param1 INT(11))
RETURNS INT(11)
RETURN (SELECT IF( MAX( posizione ) , MAX( posizione ) , 1 ) FROM info_provincia WHERE struttura = param1)//
CREATE TRIGGER pos_prov BEFORE INSERT on info_provincia
for each row
BEGIN
SET @pos = max_prov_pos(NEW.struttura);
IF NEW.posizione = 0
THEN SET NEW.posizione = @pos+1;
END IF;
END;//
DELIMITER ;
In questo caso all’inserimento di un nuovo record nella tabella viene automaticamente settato il campo “posizione” con il valore massimo
fantastiko!!!

