4

だから私はこのコードを持っているとしましょう:

SQLiteDatabase sqlDB = database.getWritableDatabase();
long iD = 0;
iD = sqlDB.insert(Table1, null, TestV);

これを書き直して、1 つではなく 2 つのテーブルに挿入することはできますか? 私の問題は、「値」が 1 つのテーブルから 3 つの値を返し、別のテーブルから 1 つの値を返すことです。したがって、'Table1' にない 1 つの値は、'Table1' で列が見つからないというエラーを引き起こします。これを行う方法はありますか?そうでない場合は、2 つの別々の挿入を行う必要がありますか? 1 つのデータベースの 2 つのテーブルにデータを挿入する方法について混乱しています (テーブルはリレーショナルです: 1 つには外部キーがあります)。

4

2 に答える 2

5

これは、データベース トランザクションを使用してシミュレートできます。

    SQLiteDatabase db = getWritableDatabase();

    db.beginTransaction();

    try {

        db.execSQL("insert into table1...");
        db.execSQL("insert into table2...");

        db.setTransactionSuccessful();
    } finally {
        db.endTransaction();
    }

挿入される値の間に依存関係がある場合、たとえば外部キー関係がある場合は、挿入の順序を選択する必要がある場合があります: ( table1 に挿入してから table2 に挿入するか、最初に table2 に挿入する...)

于 2013-05-01T23:58:08.583 に答える