sql >> Base de Datos >  >> RDS >> Mysql

Zend Db / Mysql - Insertar con Seleccionar

Mi solución (usando Zend) fue BLOQUEAR la tabla, luego consultar el número de artículo, agregar el resultado a la consulta de inserción, insertar y DESBLOQUEAR la tabla. Aquí se explica cómo BLOQUEAR y DESBLOQUEAR:

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

Otra forma es escribir la consulta para que el valor se seleccione durante la inserción. Aquí hay un ejemplo:

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

Más información sobre este tipo de consulta en MySQL Web