У меня есть база данных SQLLITE
String query = "CREATE TABLE IF NOT EXISTS plottokens (uuid TEXT PRIMARY KEY NOT NULL, plot INTEGER DEFAULT 0, autoplot INTEGER DEFAULT 0, addon INTEGER DEFAULT 0, combination INTEGER DEFAULT 0, roadcombination INTEGER DEFAULT 0)";
Я пытаюсь запустить
TokenDatabase service = TokenDatabase.getInstance();
Connection connection = service.getConnection();
String query = String.format("INSERT INTO plottokens (`uuid`, `%s`) VALUES (?, 1) ON DUPLICATE KEY UPDATE `uuid`=?, `%s`=`%s`+1", tokenType, tokenType, tokenType);
PreparedStatement preparedStatement = connection.prepareStatement(query);
preparedStatement.setString(1, uuid.toString());
preparedStatement.setString(2, uuid.toString());
preparedStatement.executeUpdate();
, где tokenType
- это одна из предопределенных строк, например, «plot».
Это дает мне org.sqlite.SQLiteException: [SQLITE_ERROR] SQL error or missing database (near "DUPLICATE": syntax error)
Предполагаемая функциональность - вставить с uuid и значением 1, если uuid не существует, иначе увеличить указанный столбец на 1.
Как это исправить?