Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Problema con trigger in SQL su un'unica tabella

    Salve ragazzi, la tabella è la seguente :
    ANAGRAFICA(codiceFiscale, nome, cognome, salario, capoUfficio: ANAGRAFICA)

    E queste sono le condizioni del trigger :

    Impostare l’intestazione ed il corpo di un trigger che all'atto della modifica di un salario di undipendente, aggiorna automaticamente il salario del relativo capoufficio della stessa quantità.

    Ho avuto un po di difficoltà nel risolverlo, avevo pensato a una soluzione del genere :

    codice:
     create or replace trigger trigg30
    after update on Anagrafica
    for each row
    begin
    update Anagrafica set Salario = :new.Salario
    where codiceFiscale = :old.Capoufficio ;
    end;
    Il trigger viene compilato correttamente, ma quando effettuo una operazione di update mi esce questo errore :
    [CODE] Errore SQL: ORA-04091: table SYSTEM.ANAGRAFICA is mutating, trigger/function may not see it
    ORA-06512: at "SYSTEM.TRIGG30", line 2
    ORA-04088: error during execution of trigger 'SYSTEM.TRIGG30'
    04091. 00000 - "table %s.%s is mutating, trigger/function may not see it"
    *Cause: A trigger (or a user defined plsql function that is referenced in
    this statement) attempted to look at (or modify) a table that was
    in the middle of being modified by the statement which fired it.
    *Action: Rewrite the trigger (or function) so it does not read that table. [CODE]


    Qualcuno avrebbe qualche suggerimento da darmi in merito? Grazie in anticipo a chiunque risponderà

  2. #2
    Risolto, si può chiudere.

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.