如何更新部分数据库-Android SQLite
我是android新手。我正在使用SQLite数据库来存储数据。我在这个数据库中有2列,其中包含每个用户的唯一数据 问题是当用户获得更新时,更新将覆盖个人数据。我想更新除2列之外的数据库 这是我的初始化数据库:如何更新部分数据库-Android SQLite,android,mysql,database,sqlite,Android,Mysql,Database,Sqlite,我是android新手。我正在使用SQLite数据库来存储数据。我在这个数据库中有2列,其中包含每个用户的唯一数据 问题是当用户获得更新时,更新将覆盖个人数据。我想更新除2列之外的数据库 这是我的初始化数据库: INSERT INTO WORDS (_id, unlocked,solved,score,word,letters,image,suggestion) VALUES (1,1,0,0,'example','example','pics/example.png','example');
INSERT INTO WORDS (_id, unlocked,solved,score,word,letters,image,suggestion) VALUES (1,1,0,0,'example','example','pics/example.png','example');
如您所见,“已解决”和“分数”的值为0。我不想更新这些值。因此,我不想在更新之前删除整个数据库,我希望保留这两个值,并确保更新不会覆盖这些数据。这样使用
UPDATE table_name SET column_name1='value', column_name2 = 'value1' WHERE condition_column='value'
您可以使用weather DB表检查它是否包含该用户id,如果不包含,则按照您的操作插入查询 如果找到记录,只需执行updateQuery:
UPDATE WORDS set unlocked = 1, word = 'example',letters = 'example',image ='pics/example.png',suggestion='example' WHERE _id=1;
我不得不说,你需要研究一下,因为这个标签很琐碎。所以我建议你多读一些关于。 这可以是:
DatosSQLiteHelper usdbh = new DatosSQLiteHelper(this, "myDatabase", null, 1);
SQLiteDatabase db = usdbh.getWritableDatabase();
if(db != null)
{
//add all atributes for update
ContentValues registre = new ContentValues();
registro.put("myvar1", "value1");
registro.put("myvar2", "value2");
registro.put("myvar3", "value3");
int numcol = db.update("mytable", register, "_id_="+1, null);
if (numcol == 1)
{
Toast.makeText(this, "success", Toast.LENGTH_SHORT).show();
}
}
只需使用更新查询,这样我就不需要删除数据库,只需在更新时运行更新查询?是的,这是真的。只需查看下面的答案,我同意此评论。参见上的示例