5° Anno TEORIA 4. Introduzione al linguaggio SQL | Page 72

16 . Il linguaggio SQL Vers . 9.3 – Marzo 2024
DELIMITER // CREATE TRIGGER trg3 BEFORE INSERT ON fornituranew . Fornitore FOR EACH ROW BEGIN DECLARE msg VARCHAR ( 255 ); IF NEW . DataN <= " 1960-01-01 "
THEN SET msg = concat (" DataN non puo ' essere precedente al 1 gennaio 1960 "); SIGNAL sqlstate ' 45000 ' SET message _ text = msg ; END IF ; END // DELIMITER ;
36 ) eliminiamo il TRIGGER precedentemente creato
DROP TRIGGER trg3 ;
37 ) creiamo un altro TRIGGER sulla tabella Fornisce che controlli la clausola CHECK ( Qta IN ( 1,2,3 ))
impostata in precedenza nella CREATE TABLE di Fornisce , che MySQL non supporta , bloccando l ’ operazione di inserimento segnalando un opportuno messaggio di testo
DELIMITER // CREATE TRIGGER trg4 BEFORE INSERT ON fornituranew . Fornisce FOR EACH ROW BEGIN DECLARE msg VARCHAR ( 255 ); IF NEW . Qta < 1
THEN SET msg = concat (" Quantita ' non puo ’ essere inferiore a 1 "); SIGNAL sqlstate ' 45000 ' SET message _ text = msg ;
ELSE IF NEW . Qta > 3
THEN SET msg = concat (" Quantita ' non puo ’ essere superiore a 3 "); SIGNAL sqlstate ' 45000 ' SET message _ text = msg ;
END IF ; END IF ; END // DELIMITER ;
38 ) eliminiamo il TRIGGER precedentemente creato
DROP TRIGGER trg4 ;
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it ) Pag . 72