私は2つのトランザクションを実行します。
最初のトランザクションではテーブル test が作成されますが、このトランザクションのロールバックと言います。
私は、テーブルテストが作成されているかどうかにかかわらず、その間にあるべきではないと思います。
次に、他のトランザクションを実行して、何が起こったかをテストします。
テーブル テストに 1 行挿入します。それはプログラムで動作しているように見えますが、sqlite プロンプトに移動すると、コマンド「.schema」と言ったときにそこにテーブル テストが表示されません。
誰かが何が起こっているのか教えてもらえますか?
私のコードの出力は次のとおりです。
try
{
db.beginTransaction();
String s =
"CREATE TABLE test(id INTEGER PRIMARY KEY AUTOINCREMENT ,age INTEGER)";
db.execSQL(s);
}
catch (Exception e)
{
System.out.println("Exception 1:"+e);
}
finally
{
db.endTransaction();
}
try
{
db.beginTransaction();
db.execSQL("INSERT INTO test VALUES(NULL,22)");
db.setTransactionSuccessful();
System.out.println("Insert ok.");
}
catch (Exception e)
{
System.out.println("Exception 2:"+e);
}
finally
{
db.endTransaction();
}