我对 android Api 有一个大问题。我正在尝试在 SQL 数据库中插入一些值,如果密钥已经存在,我想更新。
通常使用 SQL 没问题,但 android 总是抛出错误。
我的代码:
"IF EXISTS (SELECT * FROM "+table+" WHERE Name='"+key+"')" +
" UPDATE "+table+" SET (Value='"+Value+"') WHERE Name='"+key+"'" +
" ELSE" +
" INSERT INTO Table1 (Name,Value) VALUES ('"+key+"','"+Value+"')";
我总是得到的错误:
09-19 19:56:46.311: E/AndroidRuntime(32454): Caused by:
android.database.sqlite.SQLiteException: near "CASE": syntax error (code 1): , while compiling: CASE WHEN EXISTS (SELECT * FROM Settings WHERE Name='AppVersion')THEN UPDATE Settings SET (Value='0.5 beta') WHERE Name='AppVersion'ELSE INSERT INTO Table1 (Name,Value) VALUES ('AppVersion','0.5 beta')`
我也尝试过使用“CASE”,但它也不起作用。
"CASE WHEN EXISTS (SELECT * FROM "+table+" WHERE Name='"+key+"')" +
"THEN UPDATE "+table+" SET (Value='"+Value+"') WHERE Name='"+key+"'" +
"ELSE INSERT INTO Table1 (Name,Value) VALUES ('"+key+"','"+Value+"')";
请任何人告诉我它是如何工作的。
PS.:抱歉英语不好。