Android SQLite中的原始查询 - INSERT或IGNORE

时间:2013-03-30 06:31:41

标签: java android sqlite insert

我在创建应用程序的Sqlite数据库中输入信息时遇到问题。之前我正在使用Cursor的帮助。我习惯了MySQL,虽然显然不那么“习惯”。

我正在尝试从文件添加到数据库。我之前有这个工作,但它将与光标一起添加。然后告诉我,为了实现这一点,我可以向文件添加新信息,并让应用程序只将新信息添加到数据库中,我应该使用INSERT或IGNORE。

这是正确的语法吗?我目前没有插入任何信息......

ourDatabase.rawQuery("INSERT OR IGNORE INTO " + DATABASE_TABLE + " ("+KEY_CLASS+",
 " + KEY_QUESTION+ ") VALUES ('" + qclass + "', '" + question + "');", null);

这是我的数据库:

"CREATE TABLE " + DATABASE_TABLE + " (" + 
                    KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
                    KEY_CLASS + " TEXT NOT NULL, " +
                    KEY_QUESTION + " TEXT NOT NULL UNIQUE);

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:6)

您的查询似乎正确,但无论如何都要尝试下面的

ContentValues insertValues = new ContentValues();
insertValues.put(KEY_CLASS, qclass);
insertValues.put(KEY_QUESTION, question);   
yourDbName.insertWithOnConflict(DATABASE_TABLE, null, insertValues, SQLiteDatabase.CONFLICT_IGNORE);  

KEY_QUESTION + " TEXT NOT NULL UNIQUE);";