Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ฟังก์ชันเทียบเท่า SCOPE_IDENTITY() ของ SQL Server ใน MySQL คืออะไร?


ฟังก์ชันเทียบเท่า SCOPE_IDENTITY() ของ SQL Server ใน MySQL คือ LAST_INSERT_ID()

รูปแบบไวยากรณ์

SELECT LAST_INSERT_ID();

ฟังก์ชันนี้คืนค่า ID ของแถวที่เพิ่มล่าสุด (AUTO_INCREMENT)

ตัวอย่างการใช้งาน

สร้างตาราง 2 ตาราง:

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

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

เพิ่มข้อมูล 8 แถวในตารางที่ 2:

mysql> insert into TestOnLastInsertIdDemo2 values(),(),(),(),(),(),(),(); Query OK, 8 rows affected (0.21 sec)

สร้าง Trigger บนตารางแรก ที่เมื่อมีการ INSERT จะเพิ่มข้อมูลในตารางที่ 2:

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 ;

เพิ่มข้อมูลในตารางแรก 1 แถว:

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

ตรวจสอบ LAST_INSERT_ID():

mysql> select last_insert_id();

ผลลัพธ์:

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

คืนค่า 1 เพราะ LAST_INSERT_ID() ใช้ตารางต้นทาง ไม่ใช่ตารางภายใน Trigger