Giải pháp của tôi (sử dụng Zend) là KHÓA bảng, thay vì truy vấn item_number, nối kết quả vào truy vấn chèn, chèn và MỞ KHÓA bảng. Đây là cách KHÓA và MỞ KHÓA:
$sql = "LOCK TABLE items WRITE";
$this->getAdapter()->query($sql);
//run select to get last item_number
//append result to insert array
//insert
$sql = "UNLOCK TABLES";
$this->getAdapter()->query($sql);
Một cách khác là viết truy vấn để giá trị sẽ được chọn trong bản chèn. Đây là một ví dụ:
$sql = INSERT INTO items (item_id, item_family, item_name, item_number)
VALUES (item_id, item_family, item_name, (SELECT item_number FROM... )+1);
$this->getAdapter()->query($sql);
Thông tin thêm về loại truy vấn này trong MySQL Web