Maison > Article > base de données > Équivalent à la fonction SQL Server SCOPE_IDENTITY() dans MySQL ?
La fonction SQL Server SCOPE_IDENTITY() est équivalente à LAST_INSERT_ID() dans MySQL. La syntaxe est la suivante :
SELECT LAST_INSERT_ID().
Cela renverra l'ID du dernier enregistrement inséré.
Ici, je vais créer une table avec une colonne de clé primaire. Vous trouverez ci-dessous une démonstration de last_insert_id().
Tout d’abord, créons deux tableaux. La requête pour créer la première table est la suivante :
mysql> create table TestOnLastInsertIdDemo -> ( -> StudentId int NOT NULL AUTO_INCREMENT, -> PRIMARY KEY(StudentId) -> ); Query OK, 0 rows affected (0.95 sec)
Créez maintenant la deuxième table. La requête est la suivante :
mysql> create table TestOnLastInsertIdDemo2 -> ( -> Id int NOT NULL AUTO_INCREMENT, -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (2.79 sec)
Utilisez la commande insert pour insérer des enregistrements dans la table. La requête est la suivante :
mysql> insert into TestOnLastInsertIdDemo2 values(),(),(),(),(),(),(),(); Query OK, 8 rows affected (0.21 sec) Records: 8 Duplicates: 0 Warnings: 0
Créez maintenant un trigger sur la table "TestOnLastInsertIdDemo2". La requête pour créer la table est la suivante :
mysql> delimiter // mysql> create trigger insertingTrigger after insert on TestOnLastInsertIdDemo -> for each row begin -> insert into TestOnLastInsertIdDemo2 values(); -> end; -> // Query OK, 0 rows affected (0.19 sec) mysql> delimiter ;
Si vous souhaitez insérer un enregistrement dans la table TestOnLastInsertIdDemo, last_insert_id() renvoie 1. La requête pour insérer des enregistrements est la suivante :
mysql> insert into TestOnLastInsertIdDemo values(); Query OK, 1 row affected (0.31 sec)
Utilisez la fonction last_insert_id(). La requête est la suivante :
mysql> select last_insert_id();
Voici le résultat :
+------------------+ | last_insert_id() | +------------------+ | 1 | +------------------+ 1 row in set (0.00 sec)
Dans l'exemple de sortie ci-dessus, elle donne 1 car last_insert_id() utilise uniquement la table d'origine et non à l'intérieur de la table de déclenchement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!