Ошибка синтаксиса обновления нескольких столбцов SQLite - PullRequest
0 голосов
/ 21 апреля 2019

Я пытаюсь выполнить этот запрос SQL, используя метод SQLiteDatabase.execSQL, как показано ниже:

String sql="UPDATE vehicle SET (name,haltpattern,type1) = ( SELECT name,haltpattern,type1 FROM v_vehicle WHERE vehicle.code = v_vehicle.code) WHERE vehicle.code IN  ( SELECT vehicle.code FROM vehicle);"
db.execSQL(sql);

Я получаю сообщение об ошибке ниже: android.database.sqlite.SQLiteException: near "(": ошибка синтаксиса (код 1):, во время компиляции: ОБНОВЛЕНИЕ транспортного средства SET (name, haltpattern, type1) = (ВЫБЕРИТЕ имя, haltpattern, type1 FROM v_vehicle WHERE vehicle.code = v_vehicle.code) WHERE vehicle.code IN (ВЫБЕРИТЕ vehicle.code ИЗ автомобиля);

Когда я запускаю тот же SQL с помощью SQLiteStudio, он работает нормально. Пожалуйста, помогите

Спасибо Tarun

Ответы [ 2 ]

0 голосов
/ 13 мая 2019

В соответствии с предложением @Shawn («Если вы используете старую версию, вам придется обновлять каждый столбец отдельно. UPDATE blah SET foo = 1, bar = 2.»), моя версия SQLite не поддерживала несколько Обновление столбцов, поэтому я обновил столбцы индивидуально.

0 голосов
/ 21 апреля 2019

Есть ли в SQLiteStudio что-то вроде функции "автозамены"?

Я не уверен, но, возможно, это пробел между "(" и "Выбор": ОБНОВЛЕНИЕ транспортного средства SET (name, haltpattern, type1) = (S ВЫБРАТЬ имя, haltpattern, type1 ОТ v_vehicle WHERE vehicle.code = v_vehicle.code) WHERE vehicle.code IN (ВЫБЕРИТЬ vehicle.code ИЗ автомобиля);

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