Mysql: defina o LAST_INSERT_ID

O Mysql tem uma função muito útil LAST_INSERT_ID. Se chamado sem um parâmetro, ele retorna o último id inserido como todos nós o conhecemos. Mas se você atribuir a ele um parâmetro, ele define o último id inserido da conexão. Dessa forma, você pode armazenar facilmente o resultado de um cálculo em uma célula e buscá-lo em uma consulta .

Exemplo usando ruby ​​+ mysql2:

# table looks like this:
# +----+--------+
# | id + value +
# +----+--------+
# | 1 | 1 |
# | 2 | 2 |
# +----+--------+
# client is a Mysql2::Client

client
.query('UPDATE `table` SET
`value` = LAST_INSERT_ID(`value`*3)

WHERE `id` = 1;'
)

client
.last_id # == 3

# the table now looks like this:
# +----+--------+
# | id + value +
# +----+--------+
# | 1 | 3 |
# | 2 | 2 |
# +----+--------+

Agradável!