Min lösning (med Zend) var att LÅSA tabellen, sedan fråga artikelnummer, lägga till resultatet till infogningsfrågan, infoga och LÅSA UP tabellen. Så här låser du och låser upp:
$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);
Ett annat sätt är att skriva frågan så att värdet väljs under infogningen. Här är ett exempel:
$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);
Mer information om den här typen av frågor i MySQL Web