Maison > base de données > tutoriel mysql > Équivalent à la fonction SQL Server SCOPE_IDENTITY() dans MySQL ?

Équivalent à la fonction SQL Server SCOPE_IDENTITY() dans MySQL ?

PHPz
Libérer: 2023-09-10 15:49:02
avant
1387 Les gens l'ont consulté

相当于 MySQL 中的 SQL Server 函数 SCOPE_IDENTITY()?

La fonction SQL Server SCOPE_IDENTITY() est équivalente à LAST_INSERT_ID() dans MySQL. La syntaxe est la suivante :

SELECT LAST_INSERT_ID().
Copier après la connexion

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)
Copier après la connexion

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)
Copier après la connexion

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
Copier après la connexion

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 ;
Copier après la connexion

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)
Copier après la connexion

Utilisez la fonction last_insert_id(). La requête est la suivante :

mysql> select last_insert_id();
Copier après la connexion

Voici le résultat :

+------------------+
| last_insert_id() |
+------------------+
|                1 |
+------------------+
1 row in set (0.00 sec)
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal