Solusi saya (menggunakan Zend) adalah MENGUNCI tabel, daripada menanyakan item_number, menambahkan hasilnya ke kueri sisipan, menyisipkan, dan MEMBUKA KUNCI tabel. Berikut adalah cara MENGUNCI dan MEMBUKA KUNCI:
$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);
Cara lain adalah dengan menulis kueri sehingga nilainya akan dipilih selama penyisipan. Ini contohnya:
$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);
Info lebih lanjut tentang kueri semacam ini di MySQL Web