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

MariaDB LAST_INSERT_ID () Giải thích

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi dự phòng nâng cao sử dụng Post / pre Script Hooks

  2. Cách cài đặt MariaDB trên CentOS 7 / RHEL 7

  3. 7 cách trả về các hàng trùng lặp có khóa chính trong MariaDB

  4. 2 cách trả lại mã ASCII cho một ký tự đã cho trong MariaDB

  5. Thêm dấu phần trăm vào một số trong MariaDB