update mytable set count=last_insert_id(counter+1) where key='mykey'
Então
select last_insert_id()
last_insert_id()
pode ser passado um argumento para 'defini-lo' (e retornar esse valor), e chamá-lo sem um argumento retornará o valor novamente. O estado interno usado por last_insert_id()
é por conexão, o que significa que a mesma update
declaração emitida em outra conexão não afetará a primeira. Referência:
last_insert_id()