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
1342 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!

source:tutorialspoint.com
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