sqlite更新或插入

时间:2014-03-12 19:14:55

标签: android database sqlite

我想将数据插入到表中但是如果数据存在,我想要更新但是如果将一列设置为" 1"我希望它更新一些列而其他人不会为了不丢失一些状态,任何人都知道如何做到这一点?触发?

如果存在( 如果columnA为1则更新,但保留columnA和ColumnB,否则更新al列)else insert

2 个答案:

答案 0 :(得分:1)

只需按照您的描述编写代码:

db.beginTransaction();
try {
    // SELECT columnA FROM MyTable WHERE Name = 'whatever'
    Cursor c = db.query("MyTable", new String[] { "columnA" },
                        "Name = ?", new String[] { "whatever" },
                        null, null, null);
    if (c.moveToFirst()) {
        if (c.getInt(0) == 1) {
            // update but keep columnA and columnB
            db.update(...);
        } else {
            // update all columns
            db.update(...);
        }
    } else {
        db.insert(...);
    }
    db.setTransactionSuccessful();
} finally {
    db.endTransaction();
}

答案 1 :(得分:0)

在SQLite中,您只能通过an UPDATE trigger执行此操作。

当然,您仍然可以选择在Java级别执行:SELECT然后根据需要UPDATEINSERT