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

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

PHPz
PHPzavant
2023-09-10 15:49:021306parcourir

相当于 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().

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer