Como dar UPDATE no ultimo registro inserido ?

xerox é auto_increment !

update tbxerox
inner join tbservidores on tbxerox.cpf = tbservidores.cpfserv
set
valor = (tbservidores.maxcot - tbxerox.qtd_xerox) * (-0.10)
WHERE (tbxerox.restcota) < 0
and (tbxerox.qtd_xerox) > 80
and xerox = (SELECT last_insert_id(xerox) );

Tenta utilizar um max pela coluna de id:
And xerox = (SELECT Max(xerox) FROM tbxerox)

Jonathan, obrigado por responder. Mas quando coloco MAX, emite a seguinte mensagem no Netbeans:

java.sql.SQLException: You can’t specify target table ‘tbxerox’ for update in FROM clause.

Aliás, quando coloco o FROM.

‘MAX’ ou ‘last_insert_id’ não emitem erro e nem resultado.

tenta fazer o seguinte:

And xerox.id = (SELECT tbx.id FROM tbxerox tbx order by tbx.id desc limit 1)

tbx seria o que?

UPDATE tabela SET coluna='S' ORDER BY id DESC LIMIT 1

Desc: ordem decrescente
LIMIT 1: traz só um resultado

Como fica se colocar no Update com join?

tbx foi um alias que eu dei pra tabela, como se fosse um nome mais fácil pra mim chamar ela na consulta.

https://www.w3schools.com/sql/sql_alias.asp

Não recomendo fazer esse tipo de condição no Join, pois ele irá executar a mesma verificação para cada registro da tabela que você irá juntar.

Como faria pra juntar as duas tabelas e somente o último registro atualizar?

Você está complicando a operação, porque não faz separado, uma coisa de cada vez?
Realiza uma consulta buscando os valores que você precisa obter, após obter os valores guarde os valores em uma variável ou algo do tipo, em seguida realize o update passando somente os valores, não é uma boa prática ficar fazendo junção de tabela pra esse tipo de operação.

Comecei fazendo isso mas depois vi que tinha que fazer vários UPDATES pra cada situação. Aí de acordo com o valor inserido, ele vai realizar um cálculo específico entre colunas e buscar o UPDATE com aquela condição.

Tem alguma ideia pra esse caso de vários UPDATES?
E pra sempre atualizar o último registro, pq ele tá atualizando a coluna toda.

Quando você diz vários updates, são updates únicos ou vários registros em um único update?
Se são updates distintos com valores únicos, usa um laço de repetição, caso contrário o cenário que disse na resposta anterior já resolveria!

É tipo assim: Entro com um valor, se a subtração dele com outra coluna for menor que zero é um update. Se for maior, faz outro update e se for igual a zero realiza outro.

Então é só montar uma estrutura separada!

Monta o select que vai buscar os valores dos quais você precisa, guarde os valores em variáveis, feito isso monte 3 updates distintos!

Exemplo:

if (valorDaColuna < 0) {
    //Executa um update com a regra individual (Menor que zero)
} else if (valorDaColuna > 0) {
    //Executa um update com a regra individual (Maior que zero)
} else {
    //Executa um update com a regra individual (Igual a zero)
}
1 curtida