[Db] Trigger o altro?
Cristiano Verondini
cristiano a verondini.it
Sab 2 Giu 2007 15:56:53 CEST
On 02/giu/07, at 15:49, Giovanni R. wrote:
> Ma prendiamo ad esempio eBay, dove un utente può fare anche più di
> un'offerta per ogni prodotto: in quel caso l'ideale sarebbe quello di
> raggruppare (group by) per prodotto, ed eseguire un'unica volta la
> procedura. Se ad es. un utente ha fatto 10 offerte sul progetto x, è
> inutile decrementare 10 volte x.Numero_Offerte: basterebbe
> decrementarlo
> di 10 unità un'unica volta alla "fine" del "processo di on delete".
Logicamente avrebbe più senso, ma in questo caso invece di usare dei
trigger, fai fare tutto ad una stored procedure. Quindi dal tuo
applicativo niente più DELETE, ma semplici invocazioni della tua SP
per la cancellazione.
> In sintesi, che succede se faccio una query delete e poi nella
> procedura
> del trigger "before delete" cancello il record che il dbms si
> apprestava
> a cancellare? mi sa che verrebbe generato un "record not found"... :-/
Non puoi, direi! :)
> Al limite, comunque, si può pensare di cancellare solo le altre 9
> righe
> e lasciare che il dmbs cancelli la decima. Però, accidenti, non è che
> sia una soluzione così elegante. :-)
Ovviamente non è la soluzione!
> Alla fine forse è meglio far eseguire la procedura 10 volte, o trovare
> soluzioni a livello applicativo...
Oppure usare direttamente le SP come ho scritto sopra.
--
Cristiano Verondini
http://www.verondini.it --- [ICQ 114 190]
Maggiori informazioni sulla lista
Db