Ciao a tutti,
ho un problemino...
dovrei far si che gli utenti che unsano il DB non possano modificare nessun field di una record inserita a meno di uno. Pensavo fosse facile invece ho letto che:
"I trigger non possono invocare procedure che restituiscono dati all’utente o che utilizzano SQL dinamico; inoltre non possono invocare procedure che esplicitamente iniziano o terminano una transazione (primitive START TRANSACTION, END TRANSACTION, COMMIT o ROLLBACK)."
Quindi ho pensato bene di fare cosí:
--------------------------------------------codice--------------------------------------
CREATE TRIGGER Trig_result
BEFORE UPDATE ON results
FOR EACH ROW BEGIN
IF
NEW.Res_id = OLD.Res_id OR NEW.Date = OLD.Date OR NEW.Test_id = OLD.Test_id OR NEW.Ser_nb = OLD.Ser_nb OR NEW.Result = OLD.Result OR NEW.Factor= OLD.Factor OR NEW.Pass = OLD.Pass THEN
SET NEW.Res_id = OLD.Res_id;
SET NEW.Date = OLD.Date;
SET NEW.Test_id = OLD.Test_id;
SET NEW.Ser_nb = OLD.Ser_nb;
SET NEW.Result = OLD.Result;
SET NEW.Factor= OLD.Factor;
SET NEW.Pass = OLD.Pass;
END IF;
END;
//
----------------------------------------------------------------------------------------
Praticamente modifico la record ma ci rimetto i vecchi valori... ok, funziona, ma non sono pienamente soddisfatto... qualcuno sa suggerirmi qualcosa che possa essere un po' piú "professionale"?
Grazie
Andrea