Mysql
 sql >> Database >  >> RDS >> Mysql

Zend Db / Mysql - Inserisci con Seleziona

La mia soluzione (usando Zend) era BLOCCARE la tabella, quindi interrogare item_number, aggiungere il risultato alla query di inserimento, inserire e SBLOCCARE la tabella. Ecco come BLOCCARE e SBLOCCARE:

$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);

Un altro modo è scrivere la query in modo che il valore venga selezionato durante l'inserimento. Ecco un esempio:

$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);

Maggiori informazioni su questo tipo di query in MySQL Web