sql >> Databasteknik >  >> RDS >> Mysql

Zend Db / Mysql - Infoga med Select

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



  1. SQL:Hitta det genomsnittliga antalet dagar mellan löpningarna för varje löpare

  2. Ta bort dubbletter av rader i SQL Server

  3. Hur man avblockerar med mysqladmin flush-värdar

  4. Ta reda på datatypen för kolumnerna som returneras i en resultatuppsättning i SQL Server