Câu trả lời đơn giản - không, không thể.
Câu trả lời dài hơn, có, nếu bạn sử dụng một thủ tục được lưu trữ để tăng giá trị cho ID được chỉ định, hãy truy xuất giá trị mới và trả về.
Tôi vừa thử nghiệm điều này trong MySQL 5.1.59:
CREATE PROCEDURE increment (IN uniqid VARCHAR(255))
BEGIN
UPDATE `table` SET number = number + 1 WHERE id = uniqid;
SELECT number FROM `table` WHERE id = uniqid;
END
Cách sử dụng:
CALL increment(uniqid)
Nếu có thể có nhiều truy cập đồng thời, bạn có thể muốn LOCK
bảng trước để đảm bảo tính nguyên tử của hoạt động - MySQL rõ ràng không cho phép các thủ tục được lưu trữ tự khóa bảng.