Обновить таблицу SQL

У меня есть таблица, которая содержит два столбца CODE, где есть весь штрих-код и VARIABLE, инициализированные в 0 в начале. Я должен обновить таблицу, когда я сканирую штрих-код, я должен добавить 1 к переменной, когда я сканирую его дважды VARIABLE =2.... Я пытался сделать это как, но это не работает. Может кто-нибудь помочь?

 String query = "INSERT INTO TABLE (CODE,VARIABLE) VALUES(?,?) ON DUPLICATE KEY UPDATE VARIABLE='"+VARIABLE+1+"'";

                try {
                    if (connect != null) {
                           PreparedStatement statement = connect.prepareStatement(query);
                         statement.setString(1, "%" + res + "%");
                        statement.setInt(2,VARIABLE );

                        r=statement.executeQuery();
                        if (r.next()) {
                            message = "Updated";
                            String code = r.getString("CODE");
                            int var = r.getInt("VARIABLE");
                            INFOSOMME.setText(message);
                            INFOSOMME.setText(code);
                            INFOSOMME.setText(var);
                        } else {
                            message = "Error";
                            INFOSOMME.setText(message);
                        }
                    } else {
                        message = "Error in connection with SQL server";
                        INFOSOMME.setText(message);

                    }

                } catch (SQLException e) {
                    etat = false;
                    message = "Got an exception!";
                    System.err.println(e.getMessage());
                }


            }
        });

ОШИБКА: 08-03 09:43:44.966 30393-30393/com.example.practicas.myapplication W/System.err: неверный синтаксис cerca de la palabra clave 'ON'.

Я попытался изменить запрос на String query="INSERT INTO TABLE(CODE,VARIABLE) VALUES(?,0);" + "Обновить переменную TABLE SET VARIABLE=VARIABLE+1 ГДЕ КАК КОД?"; и я получил эту ошибку /System.err: метод executeQuery должен вернуть набор результатов.

2 ответа

Попробуйте выполнить следующую команду SQL:

String query = "INSERT INTO TABLE (CODE,VARIABLE) VALUES(?,?) ON DUPLICATE KEY UPDATE VARIABLE=(VARIABLE+1)";

Я разместил комментарий, но лучше здесь, я думаю:

ExecuteNonQuery

Обновления и вставки не возвращают данные, поэтому вы не должны использовать с ними executeQuery (который возвращает информацию, кроме количества затронутых строк)

Другие вопросы по тегам