Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách lấy khóa chính mới từ INSERT query trong MySQL?


Dùng hàm LAST_INSERT_ID() ngay sau câu INSERT.

Tạo bảng

mysql> CREATE TABLE LastInsertRecordIdDemo (
    -> Id INT AUTO_INCREMENT,
    -> Value VARCHAR(100),
    -> PRIMARY KEY(Id)
    -> );
Query OK, 0 rows affected (0.52 sec)

Chèn và lấy ID

mysql> INSERT INTO LastInsertRecordIdDemo VALUES(1,'Low');
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO LastInsertRecordIdDemo VALUES(LAST_INSERT_ID(),'High');
Query OK, 1 row affected (0.11 sec)
mysql> SELECT * FROM LastInsertRecordIdDemo;
+----+-------+
| Id | Value |
+----+-------+
| 1  | Low   |
| 2  | High  |
+----+-------+
2 rows in set (0.00 sec)

Tiếp tục chèn với LAST_INSERT_ID()+1

mysql> INSERT INTO LastInsertRecordIdDemo VALUES(LAST_INSERT_ID()+1,'Medium');
Query OK, 1 row affected (0.08 sec)
mysql> SELECT * FROM LastInsertRecordIdDemo;
+----+--------+
| Id | Value  |
+----+--------+
| 1  | Low    |
| 2  | High   |
| 3  | Medium |
+----+--------+
3 rows in set (0.00 sec)

Lưu ý: LAST_INSERT_ID() trả về ID auto_increment của câu INSERT gần nhất trong session hiện tại. An toàn cho multi-user.