我想将数据插入到表中但是如果数据存在,我想要更新但是如果将一列设置为" 1"我希望它更新一些列而其他人不会为了不丢失一些状态,任何人都知道如何做到这一点?触发?
如果存在( 如果columnA为1则更新,但保留columnA和ColumnB,否则更新al列)else insert
答案 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
然后根据需要UPDATE
或INSERT
。