下午好。我的数据库在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 for Java)
提前谢谢。
最佳答案
在SQLite中,您需要使用双引号("
),方括号([]
)或反斜杠对列名进行转义。
为了简化起见,我将使用双引号(这是标准的SQL方式),如下所示:
UPDATE EquiposIBAI
SET Puntos=Puntos + 3, "Victorias Totales" = "Victorias Totales" + 1
WHERE NOMBRE='SD Eibar' AND fk_CodLiga=5;
单引号用于字符串文字,并且在第三行中使用得很好。
或者,我将避免(在可能的情况下)在列名中使用空格,或者避免...在此情况下使用任何特殊字符。在这种情况下,我会将列名更改为
victorias_totales
。