Я пытаюсь обновить столбец ключи таблицы book базы данных H2 (через JayDeBeApi), используя эту команду:
sqlCommand = "UPDATE book SET keys = %s WHERE keys IS NULL AND id = %d"
val = (keyWords, idBook)
mydb.execute(sqlCommand, val)
keyWords имеет тип string, а idBook имеет тип int.Таблица имеет больше столбцов (но это релевантные столбцы) и создается с помощью Spring-Boot:
@Id
private Integer id;
@Column(columnDefinition="varchar(5000)")
private String keys;
Но я получаю эту ошибку:
Traceback (most recent call last):
File "init.py", line 43, in <module>
sql.execute(sqlCommand, val)
File "C:\Users\Us\AppData\Local\Programs\Python\Python36-32\lib\site-packages\jaydebeapi\__init__.py", line 498, in execute
self._prep = self._connection.jconn.prepareStatement(operation)
jpype._jexception.JdbcSQLExceptionPyRaisable: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "UPDATE BOOK SET KEYS = %[*]S WHERE KEYS IS NULL AND ID = %D "; expected "DEFAULT, NOT, EXISTS, INTERSECTS, SELECT, FROM, WITH"; SQL statement:
UPDATE book SET keys = %s WHERE keys IS NULL AND id = %d [42001-197]
Я вижу, чтопроблема вызвана типами форматирования, но я абсолютно не знаю, как это исправить.
Любая помощь приветствуется.