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

Setara dengan fungsi SQL Server SCOPE_IDENTITY() dalam MySQL?

PHPz
Lepaskan: 2023-09-10 15:49:02
ke hadapan
1386 orang telah melayarinya

相当于 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().
Salin selepas log masuk

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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
Salin selepas log masuk

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 ;
Salin selepas log masuk

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)
Salin selepas log masuk

Gunakan fungsi last_insert_id(). Pertanyaannya adalah seperti berikut:

mysql> select last_insert_id();
Salin selepas log masuk

Berikut ialah output:

+------------------+
| last_insert_id() |
+------------------+
|                1 |
+------------------+
1 row in set (0.00 sec)
Salin selepas log masuk

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 Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan