Rumah  >  Artikel  >  pangkalan data  >  Setara dengan fungsi SQL Server SCOPE_IDENTITY() dalam MySQL?

Setara dengan fungsi SQL Server SCOPE_IDENTITY() dalam MySQL?

PHPz
PHPzke hadapan
2023-09-10 15:49:021248semak imbas

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

Fungsi SQL Server SCOPE_IDENTITY() adalah bersamaan dengan LAST_INSERT_ID() dalam MySQL. Sintaks adalah seperti berikut:

SELECT LAST_INSERT_ID().

Ini akan mengembalikan ID rekod terakhir yang dimasukkan.

Di sini saya akan mencipta jadual dengan lajur kunci utama. Di bawah ialah demonstrasi last_insert_id().

Mula-mula, mari buat dua jadual. Pertanyaan untuk mencipta jadual pertama adalah seperti berikut:

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

Sekarang buat jadual kedua. Pertanyaannya adalah seperti berikut:

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

Gunakan arahan sisip untuk memasukkan beberapa rekod dalam jadual. Pertanyaannya adalah seperti berikut:

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

Sekarang buat pencetus pada jadual "TestOnLastInsertIdDemo2". Pertanyaan untuk mencipta jadual adalah seperti berikut:

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 ;

Jika anda ingin memasukkan rekod dalam jadual TestOnLastInsertIdDemo, last_insert_id() mengembalikan 1. Pertanyaan untuk memasukkan rekod adalah seperti berikut:

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

Gunakan fungsi last_insert_id(). Pertanyaannya adalah seperti berikut:

mysql> select last_insert_id();

Berikut ialah output:

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

Dalam contoh output di atas, ia memberi 1 kerana last_insert_id() hanya menggunakan jadual asal dan bukan di dalam jadual pencetus.

Atas ialah kandungan terperinci Setara dengan fungsi SQL Server SCOPE_IDENTITY() dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam