[supersaibal]
Originariamente inviato da frank-coblan
L'autocommit e' un impostazione che fa si che dopo ogni query i dati vengano scritti (se necessario) nella banca dati.
Ne nostro caso vogliamo eseguire piu query ma vogliamo che il tutto venga scritto (o cancellato per noi ) solo se tutto e' andato a buon fine. E' come l'undo se vuoi
levare l'autocommit varia da dbms a dbms
Se il tuo db sopporta le transazioni
BEGIN WORK
--uso anche una subquery
DELETE FROM articolo WHERE idarticolo IN SELECT idarticolo FROM associazione WHERE prodotto = '55';
DELETE FROM prodotto WHERE idprodotto = '55';
DELETE FROM associazione WHERE prodotto = '55';
COMMIT
Se anche solo una delle query di delete va a male tutte le altre eventualmente gia fatte vengono annullate (W le transazioni)
Nel caso che proponevo in 1) e' un dato che va scelto in sede di progettazione (di solito) cmq ecco un link che ti spiega un po tutto
http://www.html.it/sql/sql_07.htm e
http://members.xoom.virgilio.it/simo...tml/nuova.html e
http://www.guidainlinea.com/sql/guida/ (trovati con google) come libro prendi "Basi di dati" Atzeni, Ceri, Paraboschi, Merialdo (mi pare)
NB: nel tuo caso hai usato 3 tb quando secondo me ne bastavano 2 visto che e' una relazione 1-N che avrebbe evitato la subquery [/supersaibal]