[Db] stored function per generare stringa unica
Marcello Vezzelli
marcello a vezz.it
Mer 22 Ago 2007 12:10:18 CEST
Domenico L. ha scritto:
>
> In alternativa dovresti usare una transazione.... a meno che non ti
> funzioni
>
> insert into table (id,....) value (getID(),...)
>
Da provare.
> In ogni caso sia con una procedura che con due istruzioni in
> tranasazione ti serve un lock di tipo write, o un semaforo affinché la
> procedura che genera l'identificativo non venga utilizzata 2 volte
> contempoaranemante....
>
Ma il lock non è garantito dalla transazione?
Poniamo che in due transazioni venga generato lo stesso id... succederà
che la prima insert ha successo e la seconda fallisce...
non posso semplicemente ripetere la seconda insert?
Se il codice è tutto dentro a una sp, riprovo finché la insert non ha
successo, generando un nuovo id ad ogni tentativo.
In pratica è come faccio adesso in php:
1) genero un id
2) SELECT per guardare se c'è già.. se c'è già torna a 1)
3) provo INSERT
4) se non ok torno a 1)
5) ho l'id del record inserito
C'è modo di farlo tutto dentro alla stored function in mysql 5?
Ciao
Marcello
Maggiori informazioni sulla lista
Db