SQLite の AUTO_INCREMENT 値の取得

AUTO_INCREMENT で生成した値は、MySQL は、LAST_INSERT_ID() で取得するが、
SQLite では、LAST_INSERT_ROWID() である。
だから、AndroidSQLite でこれを利用しようと最初に思いつくのは、、
SQLiteDatabase insert メソッド実行直後に、

Cursor c = sqLiteDatabase.rawQuery("SELECT LAST_INSERT_ROWID()", null);
if (c != null && c.moveToFirst()){
   long last_id = c.getLong(0);

}

という方法であろう。。

でも、SQLiteDatabase insert API-DOC にちゃんと戻り値は、
  the row ID of the newly inserted row, or -1 if an error occurred
と書いてあるので、

 long last_id = db.insert("employees",null,values);

でも取得できるので、わざわざ rawQuery で Cursor 取得してなんて書かなくても
戻り値で取得可能である。

LAST_INSERT_ID を取得しなければならないケースは、多くの経験から INSERT したテーブルの
レコードを参照する別のテーブルのレコードを作る場合がほとんどのパターンで
Android で、上の方法にまだ抵抗があり、
結局、、、1つのトランザクションの中で、

 SQLiteDatabase の insert を実行直後に、

 sqLiteDatabase.execSQL("INSERT INTO foo (employee_id, ... ) VALUES( LAST_INSERT_ROWID() , .... )", new Object[]{ .... });

のように、
参照テーブル INSERT SQL で、 LAST_INSERT_ROWID() を直接記述してしまう。