Обновить таблицу 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)";
Я разместил комментарий, но лучше здесь, я думаю:
Обновления и вставки не возвращают данные, поэтому вы не должны использовать с ними executeQuery (который возвращает информацию, кроме количества затронутых строк)