ho ottenuto un risultato, sono riuscito a creare un trigger funzionante :
in questo modo se inserisco un voto maggiore di 30 viene predisposto un null, ma siccome il null non viene accettato come valore nella colonna l'inserimento viene annullato, stessa cosa se il voto è maggiore di 18 e viene inserito lo stato 'bocciato', ma è solo un trucco subdolo, ci sarà un comando da mettere dopo il 'THEN' che impedisca l'inserimento senza vincolare gli attributi con un not null...codice:-- Trigger DDL Statements USE DatabaseSQL; DELIMITER // CREATE TRIGGER tabprovaINcheck BEFORE INSERT ON tabprova FOR EACH ROW BEGIN IF NEW.voto > 30 THEN SET NEW.voto = null; END IF; IF NEW.voto > 18 AND NEW.stato = 'bocciato' THEN SET NEW.voto = null; END IF; END; //
vorrei che la command line specificasse che i dati inseriti sono scorretti, non che non è possibile inserire un valore null nell'attributo X (valore che viene messo dal trigger)

Rispondi quotando