2011-05-27 30 views

Respuesta

23
update mytable set count=last_insert_id(counter+1) where key='mykey' 

Entonces

select last_insert_id() 

last_insert_id() se puede pasar un argumento a 'set' (y devolverá ese valor), y decir que es un argumento sin devolverá el valor nuevo. El estado interno utilizado por last_insert_id() es por conexión, lo que significa que la misma instrucción update emitida en otra conexión no afectará a la primera.

Referencia: last_insert_id()

+1

Oh, no lo saben, 1 – zerkms

+1

Esta tabla se utilizará muy fuertemente, lo que sucede si ocurre otra actualización antes del selecto? ¿No será incorrecto el valor de last_insert_id? –

+2

El que responde dijo: 'last_insert_id()' es por conexión. Entonces, ¿qué otras conexiones no te afectan? Si ** usted ** hace inserciones/reemplaza, entonces sí será incorrecto. – Johan

Cuestiones relacionadas