最後に挿入された行IDをフェッチするためにSQLiteで使用できる組み込み関数はありますか?たとえば:-mysqlにはLAST_INSERT_ID()
この種の関数があります。sqlliteの場合、同じプロセスを実行するために使用できるすべての関数。
私を助けてください。
ありがとう
最後に挿入された行IDをフェッチするためにSQLiteで使用できる組み込み関数はありますか?たとえば:-mysqlにはLAST_INSERT_ID()
この種の関数があります。sqlliteの場合、同じプロセスを実行するために使用できるすべての関数。
私を助けてください。
ありがとう
これはSQLitelast_insert_rowid()
関数を使用して利用できます:
last_insert_rowid()関数は、関数を呼び出したデータベース接続からの最後の行挿入のROWIDを返します。last_insert_rowid()SQL関数は、sqlite3_last_insert_rowid()C /C++インターフェース関数のラッパーです。
この関数のPHPバージョン/バインディングは次のsqlite_last_insert_rowid()
とおりです。
自動インクリメントフィールドとして作成された場合、データベースのdbhandleに最後に挿入された行のROWIDを返します。
SQLiteバージョン3をPDOSQLiteで使用する場合、次のようになります。
$insert = "INSERT INTO `module` (`mid`,`description`) VALUES (
NULL,
:text
);
";
$stmt = $conn->prepare($insert);
$stmt->execute(array(':text'=> $text));
echo $conn->lastInsertId()
それは持っていますlast_insert_rowid()
last_insert_rowid()関数は、関数を呼び出したデータベース接続からの最後の行挿入のROWIDを返します。
これは私のために働いている短い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;
}