Trong MariaDB, LAST_INSERT_ID()
là một hàm tích hợp trả về giá trị được tạo tự động đầu tiên được chèn thành công cho AUTO_INCREMENT
là kết quả của INSERT
được thực thi gần đây nhất tuyên bố.
Nó cũng có thể được gọi với một đối số, trong trường hợp đó, nó trả về giá trị của biểu thức và lệnh gọi tiếp theo tới LAST_INSERT_ID()
sẽ trả về cùng một giá trị.
Cú pháp
Hàm có thể được gọi theo những cách sau:
LAST_INSERT_ID()
LAST_INSERT_ID(expr)
Ở đâu expr
được trả về và lệnh gọi tiếp theo tới LAST_INSERT_ID()
sẽ trả về cùng một giá trị.
Ví dụ
Ví dụ:hãy tạo một bảng với AUTO_INCREMENT
cột:
CREATE TABLE guest (
guest_id INT NOT NULL AUTO_INCREMENT,
guest_name VARCHAR(255) NOT NULL,
PRIMARY KEY (guest_id)
);
guest_id
cột sử dụng AUTO_INCREMENT
vì giá trị của nó.
Bây giờ hãy chèn một số hàng:
INSERT INTO guest (guest_name) VALUES ('Homer');
INSERT INTO guest (guest_name) VALUES ('Bart');
INSERT INTO guest (guest_name) VALUES ('Marge');
Bây giờ chúng ta hãy chạy LAST_INSERT_ID()
:
SELECT LAST_INSERT_ID();
Kết quả:
+------------------+ | LAST_INSERT_ID() | +------------------+ | 3 | +------------------+
Nó trả về 3
.
Bây giờ, hãy trả lại tất cả các hàng trong bảng để xác minh rằng hàng cuối cùng có AUTO_INCREMENT
giá trị của 3
đã chèn:
SELECT *
FROM guest;
Kết quả:
+----------+------------+ | guest_id | guest_name | +----------+------------+ | 1 | Homer | | 2 | Bart | | 3 | Marge | +----------+------------+
guest_id
cột lên đến 3
.
Bao gồm một đối số
Như đã đề cập, nếu được gọi với một đối số, hàm sẽ trả về giá trị của biểu thức và lệnh gọi tiếp theo tới LAST_INSERT_ID()
sẽ trả về cùng một giá trị.
SELECT LAST_INSERT_ID(9);
Kết quả:
+-------------------+ | LAST_INSERT_ID(9) | +-------------------+ | 9 | +-------------------+
Bây giờ hãy gọi lại nó, nhưng không có đối số:
SELECT LAST_INSERT_ID();
Kết quả:
+------------------+ | LAST_INSERT_ID() | +------------------+ | 9 | +------------------+
Nó vẫn trả về giá trị 9
.
Tuy nhiên, nếu chúng tôi tiếp tục chèn các giá trị vào guest
của chúng tôi bảng, AUTO_INCREMENT
sẽ tiếp tục tại vị trí đã dừng lại trên bảng đó:
INSERT INTO guest (guest_name) VALUES ('Lisa');
Bây giờ chúng ta hãy chạy LAST_INSERT_ID()
:
SELECT LAST_INSERT_ID();
Kết quả:
+------------------+ | LAST_INSERT_ID() | +------------------+ | 4 | +------------------+
Nó trả về 4
.
Và đây là bảng bây giờ trông như thế nào:
SELECT *
FROM guest;
Kết quả:
+----------+------------+ | guest_id | guest_name | +----------+------------+ | 1 | Homer | | 2 | Bart | | 3 | Marge | | 4 | Lisa | +----------+------------+
Để biết thêm thông tin về chức năng này, hãy xem tài liệu MariaDB.