Existe-t-il une fonction intégrée disponible dans SQLite pour extraire l'ID de la dernière ligne insérée? Par exemple: - Dans mysql, nous avons LAST_INSERT_ID()
ce genre de fonction. Pour sqllite, toute fonction disponible pour effectuer le même processus.
Aidez-moi, s'il vous plaît.
Merci
Ceci est disponible en utilisant la fonction SQLite last_insert_rowid()
:
La fonction last_insert_rowid () renvoie le ROWID de la dernière ligne Insérée à partir de la connexion à la base de données ayant appelé la fonction. La fonction SQL Last_insert_rowid () est une enveloppe autour de la fonction d'interface Sqlite3_last_insert_rowid () C/C++.
La version/liaison de PHP de cette fonction est sqlite_last_insert_rowid()
:
Renvoie le rowid de la dernière ligne insérée dans la base de données , Si elle a été créée en tant que champ à incrémentation automatique.
Lors de l’utilisation de SQLite version 3 avec PDO SQLite, cela peut ressembler à ceci:
$insert = "INSERT INTO `module` (`mid`,`description`) VALUES (
NULL,
:text
);
";
$stmt = $conn->prepare($insert);
$stmt->execute(array(':text'=> $text));
echo $conn->lastInsertId()
Il a last_insert_rowid()
La fonction last_insert_rowid () renvoie le ROWID de la dernière ligne Insérée à partir de la connexion à la base de données ayant appelé la fonction.
C'est une méthode courte en C # qui fonctionne pour moi. Int32 est assez grand pour mes besoins.
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;
}