У меня есть метод, который сохраняет некоторые записи для машины в таблице. Тем не менее, я могу вставить случайно несколько раз записи для одного и того же компьютера за один день, поэтому я хочу, чтобы на этот день я сохранил самую новую вставку и отбросил старые. Я думал, что одно решение:Вставьте значение newset в таблицу и отбросьте старые
String sq = "SELECT date, idMachine "
+ "FROM MACHINES_RECORDS WHERE date = ? AND idMachine = ?";
try {
Class.forName(typeDB);
c = DriverManager.getConnection(path);
stm = c.prepareStatement(sq);
ResultSet rs = stm.executeQuery();
if (rs.next()) {
do {
//call an another method to drop this value
} while(rs.next());
}else {
//call an another method to insert this value
}
}catch (SQLException e) {
System.out.println(e.getMessage());
} finally {
if (stm != null)
stm.close();
if (c != null)
c.close();
}
Есть ли лучше/умное решение от этого, так что я могу сделать все тезисы действия в том же методе?
MySQL или SQLite? Они разные DMS, и решение может быть другим. – Pred
@Pred Это sqlite. – yaylitzis
Смотрите этот вопрос: http://stackoverflow.com/questions/2717590/sqlite-upsert-on-duplicate-key-update – Pred