joh*_*ohn 3 database sqlite android insert
所以我要说这个代码:
SQLiteDatabase sqlDB = database.getWritableDatabase();
long iD = 0;
iD = sqlDB.insert(Table1, null, TestV);
Run Code Online (Sandbox Code Playgroud)
我可以以某种方式重写这个插入两个表而不是一个?我的问题是'values'从一个表返回3个值,从另一个表返回1个值.因此,不在'Table1'中的1值会引发在"Table1"中找不到列的错误.有没有办法做到这一点?如果没有,那么我应该做两个单独的插入?我很困惑如何将数据插入一个数据库中的两个表(表是关系:一个有外键).
您可以使用数据库事务模拟这个:
SQLiteDatabase db = getWritableDatabase();
db.beginTransaction();
try {
db.execSQL("insert into table1...");
db.execSQL("insert into table2...");
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
Run Code Online (Sandbox Code Playgroud)
如果插入的值之间存在依赖关系,则可能需要选择插入的顺序,例如,如果存在外键关系:(插入到table1然后是table2,或者先插入到table2 ......)