Visualizzazione dei risultati da 1 a 4 su 4

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2014
    residenza
    Genova, presenza costante a Milano
    Messaggi
    100
    Se stai usando MyISAM, non esistono le transazioni.

    Se stai usando InnoDB (che è il default a partire da MySQL 5.5) il trigger avviene dentro la stessa transazione dell'istruzione che lo attiva. Cioè la transazione comincia prima della INSERT e finisce dopo il trigger. Il transaction level deve essere SERIALIZABLE.

    Questo è sufficiente a garantire l'isolamento. Non usare LOCK TABLES, che distrugge tutti i benefici delle transazioni - e infatti per default InnoDB lo ignora.

  2. #2
    Quote Originariamente inviata da razzoli Visualizza il messaggio
    Se stai usando MyISAM, non esistono le transazioni.

    Se stai usando InnoDB (che è il default a partire da MySQL 5.5) il trigger avviene dentro la stessa transazione dell'istruzione che lo attiva. Cioè la transazione comincia prima della INSERT e finisce dopo il trigger. Il transaction level deve essere SERIALIZABLE.

    Questo è sufficiente a garantire l'isolamento. Non usare LOCK TABLES, che distrugge tutti i benefici delle transazioni - e infatti per default InnoDB lo ignora.
    Grazie per la risposta, ma ho risolto in un altro modo. Spiego come in modo che possa essere d'aiuto a tutti: praticamente esiste una funzione LAST_INSERT_ID() che restituisce l'ID dell'ultimo elemento inserito con auto_increment. State tranquilli: Restituisce ad ogni client e ad ogni utente il corretto ID, testato sullo stesso pc con lo stesso user ed anche su pc diversi con lo stesso user e non da assolutamente problemi. L'utilizzo è semplicissimo, ad esempio
    codice:
    delimiter //
    create procedure mia_procedura()
    begin
        declare ultimo_id integer;
    
        insert into tabella_con_autoincrement(attr2) values ('valore');
    
        select LAST_INSERT_ID()
        into ultimo_id;
    
        /* potete farci quel che volete */
    end;
    //
    delimiter ;

Tag per questa discussione

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 © 2026 vBulletin Solutions, Inc. All rights reserved.