Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    11

    [MySQL] "Fregare" i trigger MySQL

    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

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    11
    Nessuna idea?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.