SQLite для Java не обновляет строки правильно - PullRequest
0 голосов
/ 05 января 2019

Добрый день. У меня проблема с моей БД, реализующей его на Java. Я хочу обновить эти две колонки. Строка Puntos не вызывает каких-либо проблем, и каждый раз, когда я запускаю executeUpdate (), строка увеличивается. Однако в 'Victorias totales' метод executeUpdate () ведет себя так, как если бы он был похож на

UPDATE EquiposIBAI 
SET Puntos=Puntos + 3, 'Victorias Totales' = 1 
WHERE NOMBRE='SD Eibar' AND fk_CodLiga=5;

Я имею в виду, значение не увеличивается, оно просто перезаписывается.

UPDATE EquiposIBAI 
SET Puntos=Puntos + 3, 'Victorias Totales' = 'Victorias Totales' + 1 
WHERE NOMBRE='SD Eibar' AND fk_CodLiga=5;

Есть ли способ это исправить? (Я использую SQLite для Java) Спасибо заранее.

1 Ответ

0 голосов
/ 05 января 2019

В SQLite вам нужно экранировать имена столбцов, используя двойные кавычки ("), квадратные скобки ([]) или обратные галочки.

Я бы использовал двойные кавычки для простоты (это стандартный способ SQL), как в:

UPDATE EquiposIBAI 
SET Puntos=Puntos + 3, "Victorias Totales" = "Victorias Totales" + 1 
WHERE NOMBRE='SD Eibar' AND fk_CodLiga=5;

Одинарные кавычки предназначены для строковых литералов, и они хорошо используются в третьей строке.

В качестве альтернативы, я бы избегал (когда это возможно) использовать пробелы в именах столбцов или, ну ... любые специальные символы в этом отношении. В этом случае я бы изменил имя столбца на victorias_totales.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...