Heim > Datenbank > MySQL-Tutorial > Hauptteil

Äquivalent zur SQL Server-Funktion SCOPE_IDENTITY() in MySQL?

PHPz
Freigeben: 2023-09-10 15:49:02
nach vorne
1300 Leute haben es durchsucht

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

SQL Server-Funktion SCOPE_IDENTITY() entspricht LAST_INSERT_ID() in MySQL. Die Syntax lautet wie folgt:

SELECT LAST_INSERT_ID().
Nach dem Login kopieren

Dies gibt die ID des zuletzt eingefügten Datensatzes zurück.

Hier erstelle ich eine Tabelle mit einer Primärschlüsselspalte. Unten finden Sie eine Demonstration von last_insert_id().

Erstens erstellen wir zwei Tabellen. Die Abfrage zum Erstellen der ersten Tabelle lautet wie folgt:

mysql> create table TestOnLastInsertIdDemo
   -> (
   -> StudentId int NOT NULL AUTO_INCREMENT,
   -> PRIMARY KEY(StudentId)
   -> );
Query OK, 0 rows affected (0.95 sec)
Nach dem Login kopieren

Erstellen Sie nun die zweite Tabelle. Die Abfrage lautet wie folgt:

mysql> create table TestOnLastInsertIdDemo2
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (2.79 sec)
Nach dem Login kopieren

Verwenden Sie den Befehl insert, um einige Datensätze in die Tabelle einzufügen. Die Abfrage lautet wie folgt:

mysql> insert into TestOnLastInsertIdDemo2 values(),(),(),(),(),(),(),();
Query OK, 8 rows affected (0.21 sec)
Records: 8 Duplicates: 0 Warnings: 0
Nach dem Login kopieren

Erstellen Sie nun einen Trigger für die Tabelle „TestOnLastInsertIdDemo2“. Die Abfrage zum Erstellen der Tabelle lautet wie folgt:

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 ;
Nach dem Login kopieren

Wenn Sie einen Datensatz in die TestOnLastInsertIdDemo-Tabelle einfügen möchten, gibt last_insert_id() 1 zurück. Die Abfrage zum Einfügen von Datensätzen lautet wie folgt:

mysql> insert into TestOnLastInsertIdDemo values();
Query OK, 1 row affected (0.31 sec)
Nach dem Login kopieren

Verwenden Sie die Funktion last_insert_id(). Die Abfrage lautet wie folgt:

mysql> select last_insert_id();
Nach dem Login kopieren

Hier ist die Ausgabe:

+------------------+
| last_insert_id() |
+------------------+
|                1 |
+------------------+
1 row in set (0.00 sec)
Nach dem Login kopieren

In der obigen Beispielausgabe wird 1 ausgegeben, da last_insert_id() nur die Originaltabelle und nicht die Triggertabelle verwendet.

Das obige ist der detaillierte Inhalt vonÄquivalent zur SQL Server-Funktion SCOPE_IDENTITY() in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!