[RESOLVIDO] Erro sistema, quando ha mais de 1 item esta alterando todos os descontos

Erro sistema, quando há mais de 1 linha na jtable item esta alterando todos os descontos???

item_compraDAO CODIGO

public void alterarItem_compra(float desconto) {
Connection conexao = ConnectionFactory.getConexao();
try {
String alterarDesconto = “Update item_compra set desconto = ? where id”;
PreparedStatement pstmt = conexao.prepareStatement(alterarDesconto );
pstmt.setFloat(1, desconto);

    int remocoes = pstmt.executeUpdate();

    if (remocoes != 1) {
	System.out.println("Houve um erro na remoção, tente novamente!");
    } else {
	System.out.println("Desconto alterado com sucesso!");
    }
    pstmt.close();
} catch (SQLException e) {
    System.out.println("Ocorreu algum erro no banco de dados, tente novamente! alterar desconto do produto");
    while (e != null) {
	System.out.println("Sql state: " + e.getSQLState());
	System.out.println("Mensagem: " + e.getMessage());
	System.out.println("Error code: " + e.getErrorCode());
	e = e.getNextException();
    }
} finally {
    System.out.println("Encerrando conexão");
    try {
	conexao.close();
	System.out.println("Conexão Terminada");
    } catch (SQLException ex) {

    }
}
}

Metodo de desconto // Botao desconto

protected void alterarItem_compra() {
if (tbItem_compra.getSelectedRow() != -1) {
    int resposta = JOptionPane.showConfirmDialog(this, "Confirma a alteração do item?", "Confirmação", JOptionPane.YES_NO_OPTION);
    if (resposta == JOptionPane.YES_NO_OPTION) {
	Item_compraDAO item_compraDAO = new Item_compraDAO();
	Item_compra item_compra = new Item_compra();
	item_compra.setDesconto(Float.parseFloat(jTextFieldDesconto.getText()));
	float desconto = Float.parseFloat(jTextFieldDesconto.getText());
	item_compraDAO.alterarItem_compra(desconto);
	listar();
    }
}
}

Tabela do item_compra mysql
image

A sua query esta errada, deve ter uma atribuição depois do id

vdd, esqueci de colocar =?

obrigado!!!