16. Il linguaggio SQL Vers. 11.2 – Febbraio 2026
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. 73