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
1342 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!

sumber:tutorialspoint.com
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