26

最後に挿入された行IDをフェッチするためにSQLiteで使用できる組み込み関数はありますか?たとえば:-mysqlにはLAST_INSERT_ID()この種の関数があります。sqlliteの場合、同じプロセスを実行するために使用できるすべての関数。

私を助けてください。

ありがとう

4

5 に答える 5

27

SQLite

これはSQLitelast_insert_rowid()関数を使用して利用できます:

last_insert_rowid()関数は、関数を呼び出したデータベース接続からの最後の行挿入のROWIDを返します。last_insert_rowid()SQL関数は、sqlite3_last_insert_rowid()C /C++インターフェース関数のラッパーです。

PHP

この関数のPHPバージョン/バインディングは次のsqlite_last_insert_rowid()とおりです。

自動インクリメントフィールドとして作成された場合、データベースのdbhandleに最後に挿入された行のROWIDを返します。

于 2012-01-17T10:27:01.567 に答える
16

SQLiteバージョン3をPDOSQLiteで使用する場合、次のようになります。

$insert = "INSERT INTO `module` (`mid`,`description`) VALUES (
            NULL,
            :text
            );
        ";
$stmt = $conn->prepare($insert);
$stmt->execute(array(':text'=> $text));

echo $conn->lastInsertId()
于 2013-04-27T13:11:57.993 に答える
4

それは持っていますlast_insert_rowid()

last_insert_rowid()関数は、関数を呼び出したデータベース接続からの最後の行挿入のROWIDを返します。

于 2012-01-17T10:26:56.470 に答える
2

sqlite_last_insert_rowid(リソース$ dbhandle)

于 2012-01-17T10:25:58.733 に答える
1

これは私のために働いている短いC#メソッドです。Int32は私の目的には十分な大きさです。

public static Int32 GetNextID( SqliteConnection AConnection )
{
  Int32 result = -1;

  using ( SqliteCommand cmd = AConnection.CreateCommand() )
  {
    cmd.CommandText = "SELECT last_insert_rowid();";
    using ( SqliteDataReader r = cmd.ExecuteReader() )
    {
      if ( r.Read() )
        result = (Int32) r.GetInt64( 0 );
    }
  }

  return result;
}
于 2018-05-22T06:25:00.160 に答える