Esercizio 0 Fare due tabelle di prova: prova1(n1 number(2), n2 number(2)); prova2(n1 number(2), n2 number(2)); Scrivere un trigger che dopo ogni inserimento di una riga in prova1 inserisca tale riga in prova2. (Questo e' un tipico esempio di audit). Esercizio 1 a) Scrivere un trigger che appena il carrello e' completo (completo='Y') genera un ordine nuovo in ordine (con stato='W', waiting); b) l'ordine deve essere fatto per quel cliente di cui e' il carrello; la consegna (in ordine) deve essere la massima dei prodotti che sono nel carrello c) successivamente copiare i prodotti del carrello (in incarrello) nella tabella inordine N.B. Attenzione a non referenziare nel codice del trigger la tabella che viene modificata dal trigger! Esercizio 2 Scrivere un trigger che cancella il carrello del cliente una volta che il suo ordine e' in stato di posted (stato='P'). N.B. Si suppone che ci sia in ogni istante solo un carrello per cliente! Esercizio 3 Controllare che in ogni istante ci sia nella tabella carrelli solo un carrello per cliente. In caso contrario si rilevi un errore d'applicazione. N.B.: Se c'e' gia' il vincolo di unique su idcli creato con: alter table carrello add (constraint carrello_idcli_unique unique (idcli) using index tablespace users storage( initial 1K next 1K minextents 1 maxextents 8 pctincrease 0) ); occorre disbilitarlo prima con: alter table carrello modify constraint carrello_idcli_unique disable; Esercizio 3bis Fare lo stesso esercizio di sopra ma con un trigger di tipo statement. Esercizio 4 Scrivere un trigger che quando un prodotto viene inserito nel carrello in una certa quantita' (in tabella incarrello, attributo qty) controlla la sua disponibilita' nella tabella prodotti (attributo dispon). Se la quantita' e' superiore a quella disponibile visualizza un messaggio d'avvertimento e inserisce nella seguente tabella richiesta(marca,mod,qty) la richiesta del prodotto necessario nella quantita' mancante aumentata di 10 unita'. create table richiesta(marca number(3), mod varchar2(20), qty number(3));