Nếu chúng tôi thực hiện CHÈN hoặc CẬP NHẬT trên một bảng có trường AUTO_INCREMENT, chúng tôi có thể nhận ngay ID của bản ghi được chèn/cập nhật lần cuối
Trong bảng "MyGuests", cột "id" là trường AUTO_INCREMENT
TẠO BẢNG MyGuests [
id INT[6] UNSIGNED AUTO_INCREMENT PRIMARY KEY,
tên VARCHAR[30] NOT NULL,
lastname VARCHAR[30] NOT NULL,
email VARCHAR[50],
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
]
Các ví dụ sau giống với các ví dụ từ trang trước [PHP Chèn dữ liệu vào MySQL], ngoại trừ việc chúng tôi đã thêm một dòng mã để truy xuất ID của bản ghi được chèn lần cuối. Chúng tôi cũng lặp lại ID được chèn lần cuối
1Code language: SQL [Structured Query Language] [sql]
INSERT INTO messages[description] VALUES['MySQL last_insert_id'];
2Code language: SQL [Structured Query Language] [sql]
INSERT INTO messages[description] VALUES['MySQL last_insert_id'];
3Code language: SQL [Structured Query Language] [sql]
INSERT INTO messages[description] VALUES['MySQL last_insert_id'];
4Code language: SQL [Structured Query Language] [sql]
INSERT INTO messages[description] VALUES['MySQL last_insert_id'];
5Code language: SQL [Structured Query Language] [sql]
INSERT INTO messages[description] VALUES['MySQL last_insert_id'];
6Code language: SQL [Structured Query Language] [sql]
INSERT INTO messages[description] VALUES['MySQL last_insert_id'];
7Code language: SQL [Structured Query Language] [sql]
INSERT INTO messages[description] VALUES['MySQL last_insert_id'];
8Code language: SQL [Structured Query Language] [sql]
INSERT INTO messages[description] VALUES['MySQL last_insert_id'];
9Code language: SQL [Structured Query Language] [sql]
INSERT INTO messages[description] VALUES['MySQL last_insert_id'];
4Code language: SQL [Structured Query Language] [sql]
INSERT INTO messages[description] VALUES['MySQL last_insert_id'];
5Code language: SQL [Structured Query Language] [sql]
INSERT INTO messages[description] VALUES['MySQL last_insert_id'];
6Code language: SQL [Structured Query Language] [sql]
INSERT INTO messages[description] VALUES['MySQL last_insert_id'];
22Code language: SQL [Structured Query Language] [sql]
INSERT INTO messages[description] VALUES['MySQL last_insert_id'];
23
INSERT INTO messages[description] VALUES['MySQL last_insert_id'];
Code language: SQL [Structured Query Language] [sql]
24Code language: SQL [Structured Query Language] [sql]
INSERT INTO messages[description] VALUES['MySQL last_insert_id'];
25Code language: SQL [Structured Query Language] [sql]
INSERT INTO messages[description] VALUES['MySQL last_insert_id'];
26Code language: SQL [Structured Query Language] [sql]
INSERT INTO messages[description] VALUES['MySQL last_insert_id'];
Tóm lược. trong hướng dẫn này, bạn sẽ tìm hiểu cách sử dụng hàm
7 của MySQL để trả về số nguyên được tạo tự động đầu tiên được chèn thành công cho một cộtCode language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
8Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
Giới thiệu về hàm MySQL CREATE TABLE messages[
id INT AUTO_INCREMENT PRIMARY KEY,
description VARCHAR[250] NOT NULL
];
Code language: SQL [Structured Query Language] [sql]
7
CREATE TABLE messages[
id INT AUTO_INCREMENT PRIMARY KEY,
description VARCHAR[250] NOT NULL
];
Trong thiết kế cơ sở dữ liệu, chúng tôi thường sử dụng khóa thay thế để tạo các giá trị số nguyên duy nhất cho cột khóa chính của bảng bằng cách sử dụng thuộc tính
8Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ id INT AUTO_INCREMENT, ..., PRIMARY KEY[id] ];
Khi bạn chèn một hàng vào bảng mà không chỉ định giá trị cho cột
1, MySQL sẽ tự động tạo một số nguyên duy nhất tuần tự cho cộtCode language: SQL [Structured Query Language] [sql]
INSERT INTO messages[description] VALUES['MySQL last_insert_id'];
1Code language: SQL [Structured Query Language] [sql]
INSERT INTO messages[description] VALUES['MySQL last_insert_id'];
Hàm
7 trả về số nguyên được tạo tự động đầu tiên [Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
4] được chèn thành công cho cộtCode language: SQL [Structured Query Language] [sql]
INSERT INTO messages[description] VALUES['MySQL last_insert_id'];
8Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
Nếu bạn chèn nhiều hàng vào bảng bằng một câu lệnh
6, thì hàmCode language: SQL [Structured Query Language] [sql]
INSERT INTO messages[description] VALUES['MySQL last_insert_id'];
7 chỉ trả về giá trị được tạo tự động đầu tiênCode language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
Nếu chèn không thành công, kết quả trả về của
7 vẫn không thay đổiCode language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
Hàm
7 hoạt động dựa trên nguyên tắc không phụ thuộc vào máy khách. Điều đó có nghĩa là giá trị được trả về bởi hàmCode language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
7 cho một ứng dụng khách cụ thể là giá trị được tạo bởi ứng dụng khách đó chỉ để đảm bảo rằng mỗi ứng dụng khách có thể nhận được ID duy nhất của riêng mìnhCode language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
Ví dụ về hàm MySQL CREATE TABLE messages[
id INT AUTO_INCREMENT PRIMARY KEY,
description VARCHAR[250] NOT NULL
];
Code language: SQL [Structured Query Language] [sql]
51
CREATE TABLE messages[
id INT AUTO_INCREMENT PRIMARY KEY,
description VARCHAR[250] NOT NULL
];
Hãy xem một ví dụ về cách sử dụng hàm
51 của MySQLCode language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
A] Sử dụng hàm MySQL CREATE TABLE messages[
id INT AUTO_INCREMENT PRIMARY KEY,
description VARCHAR[250] NOT NULL
];
Code language: SQL [Structured Query Language] [sql]
7 để lấy giá trị khi chèn một hàng vào bảng
CREATE TABLE messages[
id INT AUTO_INCREMENT PRIMARY KEY,
description VARCHAR[250] NOT NULL
];
Trước tiên, hãy tạo một bảng mới có tên là
54 để thử nghiệm. Trong bảngCode language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
54, chúng tôi đặt thuộc tínhCode language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
8 cho cộtCode language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
1Code language: SQL [Structured Query Language] [sql]
INSERT INTO messages[description] VALUES['MySQL last_insert_id'];
Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
Thứ hai, chèn một hàng mới vào bảng
54Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
Code language: SQL [Structured Query Language] [sql]
INSERT INTO messages[description] VALUES['MySQL last_insert_id'];
Thứ ba, sử dụng hàm MySQL
51 để lấy giá trị đã chèn của cộtCode language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
1Code language: SQL [Structured Query Language] [sql]
INSERT INTO messages[description] VALUES['MySQL last_insert_id'];
5Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
Thứ tư, cố gắng chèn một giá trị null vào cột
81Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
8Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
MySQL đã đưa ra lỗi sau
0Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
Cuối cùng, sử dụng hàm
51 để lấy giá trị được chèn tự động cuối cùngCode language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
5Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
Kết quả không thay đổi.
B] Sử dụng hàm MySQL CREATE TABLE messages[
id INT AUTO_INCREMENT PRIMARY KEY,
description VARCHAR[250] NOT NULL
];
Code language: SQL [Structured Query Language] [sql]
7 để lấy giá trị khi chèn nhiều hàng vào một bảng
CREATE TABLE messages[
id INT AUTO_INCREMENT PRIMARY KEY,
description VARCHAR[250] NOT NULL
];
Đầu tiên, chèn ba hàng vào bảng
54Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
5Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
Thứ hai, truy vấn dữ liệu từ bảng
54Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
7Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
Thứ ba, sử dụng hàm
7 để lấy giá trị được chèn.Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
5Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
Như bạn có thể thấy rõ từ kết quả, hàm
7 trả về giá trị được tạo của hàng đầu tiên được chèn thành công, không phải hàng cuối cùng.Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
C] Sử dụng hàm MySQL CREATE TABLE messages[
id INT AUTO_INCREMENT PRIMARY KEY,
description VARCHAR[250] NOT NULL
];
Code language: SQL [Structured Query Language] [sql]
7 trong một thủ tục được lưu trữ
CREATE TABLE messages[
id INT AUTO_INCREMENT PRIMARY KEY,
description VARCHAR[250] NOT NULL
];
Đầu tiên, tạo hai bảng
89 vàCode language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
00 để thử nghiệmCode language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
0Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
Thứ hai, tạo một thủ tục được lưu trữ để chèn tài khoản có số điện thoại vào cả hai bảng
1Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
Quy trình được lưu trữ chèn một hàng vào bảng
89, lấy id tài khoản bằng hàmCode language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
7 và sử dụng id tài khoản này để chèn điện thoại vào bảngCode language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
00. Một hàng trong bảngCode language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
00 chỉ nên tồn tại nếu có một hàng tương ứng trong bảngCode language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
89, do đó, chúng tôi đặt cả hai phần chèn vào một giao dịchCode language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
Thứ ba, gọi thủ tục được lưu trữ
06 để tạo tài khoản mới với số điện thoạiCode language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
2Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
Thứ tư, truy vấn dữ liệu từ bảng
89Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
3Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
Và bảng
00.Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
4Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
Nó hoạt động như mong đợi.
Cuối cùng, cố gắng tạo một tài khoản mới với giá trị của họ là null
5Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
MySQL đã đưa ra một lỗi
6Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
Trong hướng dẫn này, bạn đã học cách sử dụng hàm MySQL
51 để trả về số nguyên được tạo tự động đầu tiên được chèn thành công cho cộtCode language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];
8Code language: SQL [Structured Query Language] [sql]
CREATE TABLE messages[ id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR[250] NOT NULL ];