Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514

    [mysql] Transaction & RollBack

    Ciao Ragazzi,
    ho una domanda sull'utilizzo di transaction e rollback. Ho del codice php che esegue una serie di query. prima di queste query eseguo una query del tipo start transaction

    ora se tutto va bene dovrei eseguire il commit ma in caso contrario il roll back

    domanda

    debbo testare io i risultati delle query e in base ad essi richiamare roll back e commit o avviene in automatico?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  2. #2
    Utente di HTML.it L'avatar di Mashin
    Registrato dal
    Jul 2010
    Messaggi
    187
    Non vorrei dire stupidate ma dovrebbe fare roll B di tutto (anche eventuali query precedente nella stessa transaz).

    Se invece vuoi che ogni successo sia salvato (indipendentemente da cosa fara' poi) fai check a ogni query e committ/roll su success/errore.

  3. #3
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    forse mi sono espresso male.

    so che il roll back lo fa su tutto. non mi è chiaro se lo fa in automatico in caso di errore di una delle query
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  4. #4
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Si, il rollaback avviene in automatico in SQL Server, ma penso che tal comportamento sia standard.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  5. #5
    Utente di HTML.it L'avatar di Mashin
    Registrato dal
    Jul 2010
    Messaggi
    187
    Ma lui non aveva chiesto MySQL ? Oo

  6. #6
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    quindi in realtà dovrei fare una cosa tipo

    query start transaction

    query da fare

    query rollback

    query committ

    il roll back quindi viene chiamato solo se le precedenti vanno a male?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  7. #7
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    ho fatto un po' di test su mysql.
    la funzione rollback annulla tutte le query della transazione anche qualora queste siano andate a buon fine. quindi scrivere nel codice php un rollback senza testare l'esito delle query è come non combinare nulla.

    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  8. #8
    Utente di HTML.it L'avatar di Mashin
    Registrato dal
    Jul 2010
    Messaggi
    187
    Si quello si O_o

    il mio dubbio, per cui non ho piu' risposto, e' "se non usi la funzione rollback, c'e' 1 errore in una query, viene eseguito un roll back ? di tutto ? solo di quella query?"

    Pensavo tu chiedessi una cosa di sto tipo. Perche' se la inserisci tu la rollb e' ovvio che ti annulla tutto quello fatto da inizio transazione. Andato a buon fine o no. A meno che tunon abbia commitato prima.

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.