Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Zend Db / Mysql - Einfügen mit Select

Meine Lösung (mit Zend) bestand darin, die Tabelle zu LOCKEN, dann die item_number abzufragen, das Ergebnis an die Insert-Abfrage anzuhängen, die Tabelle einzufügen und UNLOCK zu machen. So können Sie SPERREN und ENTSPERREN:

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

Eine andere Möglichkeit besteht darin, die Abfrage so zu schreiben, dass der Wert während des Einfügens ausgewählt wird. Hier ist ein Beispiel:

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

Weitere Informationen zu dieser Art von Abfrage finden Sie in MySQL Web