Первоначально я искал возможность INSERT OR UPDATE
в SQLite, но поиски показали, что похожие спрашивающие задают вопрос об использовании INSERT OR REPLACE
.
Я, очевидно, неправильно понимаю, как это работает, и, очевидно, я не могу использоватьWHERE
когда я получаю следующее исключение SQLiteException ...
08-12 01:38:22.973: ERROR/AndroidRuntime(29242): FATAL EXCEPTION: main
08-12 01:38:22.973: ERROR/AndroidRuntime(29242): android.database.sqlite.SQLiteException:
near "WHERE":
syntax error:
INSERT OR REPLACE INTO SERVERS (
server_name,
service_uri_mobile,
service_uri_wifi,
valid_ssids,
username,password
) VALUES (
'Default',
'http://myserver.com:8790/',
'http://192.168.1.1:8790/',
'[]',
'admin',
'password')
WHERE server_name='Default'
Используемая строка SQL выглядит следующим образом ...
String UpdateString = "INSERT OR REPLACE INTO SERVERS " +
"(server_name,service_uri_mobile,service_uri_wifi,valid_ssids,username,password) VALUES ('" +
locater.getServerName() + "','" +
locater.getServiceUriMobile().toString() + "','" +
locater.getServiceUriWifi().toString() + "','" +
locater.getValidSsids().toString() + "','" +
locater.getUsername() + "','" +
locater.getPassword() + "') " +
"WHERE server_name='" + locater.getServerName() + "'";
Я смотрел на эта страница объясняет REPLACE
, но не совсем понимаю.Как мне переписать приведенную выше команду SQLite и попытаться заменить только запись, в которой совпадает server_name
(т. Е. Эквивалент предложения WHERE
)?