Heim  >  Artikel  >  Datenbank  >  Äquivalent zur SQL Server-Funktion SCOPE_IDENTITY() in MySQL?

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

PHPz
PHPznach vorne
2023-09-10 15:49:021306Durchsuche

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

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)

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)

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

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 ;

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)

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

mysql> select last_insert_id();

Hier ist die Ausgabe:

+------------------+
| last_insert_id() |
+------------------+
|                1 |
+------------------+
1 row in set (0.00 sec)

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen