Si supponga di avere un database con queste relazioni :
Impiegati (IdI : integer[4], cognome : char[20], nome : char[20], posizione : char[12],
superiore : integer[4])
Ordini (IdO : integer[6], IdCliente : integer[6], IdImp : integer[4], data : date)
Clienti (IdC : integer[6], nome : char[20], indirizzo : char[30], citta’ : char[30], stato : char
[20])
CHIAVI ESTERNE
“Superiore” di Impiegati --> “IdI” della stessa.
“IdCliente” di Ordini → “IdC” di Clienti
“IdImp” di Impiegati → “IdI” di Impiegati
A ) Si voglia realizzare un trigger che eviti, all' inserimento di una nuova voce nella tabella
Impiegati, che l' id del superiore di un impiegato sia uguale a quello dell' impiegato stesso.
Io ho fatto così, secondo voi è corretto?
codice:CREATE TRIGGER controllo_inserim_impieg AFTER INSERT ON Impiegati FOR EACH ROW BEGIN IF NEW.superiore NOT IN (SELECT NEW.id_i FROM Impiegati WHERE superiore=id_I) UPDATE Impiegati END IF; END;

Rispondi quotando