Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tương đương với hàm SQLServer SCOPE_IDENTITY () trong mySQL?

Điều này là những gì bạn đang tìm kiếm:

LAST_INSERT_ID()

Để đáp lại nhận xét của OP, tôi đã tạo bài kiểm tra dự bị sau:

CREATE TABLE Foo
(
    FooId INT AUTO_INCREMENT PRIMARY KEY
);

CREATE TABLE Bar
(
    BarId INT AUTO_INCREMENT PRIMARY KEY
);

INSERT INTO Bar () VALUES ();
INSERT INTO Bar () VALUES ();
INSERT INTO Bar () VALUES ();
INSERT INTO Bar () VALUES ();
INSERT INTO Bar () VALUES ();

CREATE TRIGGER FooTrigger AFTER INSERT ON Foo
    FOR EACH ROW BEGIN
        INSERT INTO Bar () VALUES ();
    END;

INSERT INTO Foo () VALUES (); SELECT LAST_INSERT_ID();

Điều này trả về:

+------------------+
| LAST_INSERT_ID() |
+------------------+
|                1 |
+------------------+

Vì vậy, nó sử dụng LAST_INSERT_ID() của bảng gốc chứ không phải của bảng INSERT vào bên trong trình kích hoạt.

Chỉnh sửa: Sau tất cả thời gian, tôi nhận ra rằng kết quả của SELECT LAST_INSERT_ID() được hiển thị trong câu trả lời của tôi là sai, mặc dù kết luận ở cuối là đúng. Tôi đã cập nhật kết quả thành giá trị chính xác.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nơi thay đổi giá trị của Lower_case_table_names =2 trên xampp windows

  2. Khắc phục sự cố sao chép MySQL:Phần một

  3. Cách phát hiện các ký tự UTF-8 trong cột được mã hóa Latin1 - MySQL

  4. Cách xóa người dùng cơ sở dữ liệu MySQL trong cPanel

  5. Sử dụng một câu lệnh Python cho câu lệnh SQL INSERT