Mysql
 sql >> Base de données >  >> RDS >> Mysql

Zend Db / Mysql - Insérer avec Select

Ma solution (en utilisant Zend) était de VERROUILLER la table, puis d'interroger le numéro d'article, d'ajouter le résultat à la requête d'insertion, d'insérer et de DÉVERROUILLER la table. Voici comment VERROUILLER et DÉVERROUILLER :

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

Une autre méthode consiste à écrire la requête de sorte que la valeur soit sélectionnée lors de l'insertion. Voici un exemple :

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

Plus d'informations sur ce type de requête dans MySQL Web