sql >> Databáze >  >> RDS >> Mysql

Více dotazů na sobě závislých

Můžete použít transakce, pokud to engine, který používáte, podporuje (InnoDB, BDB).

Viz http://dev.mysql.com/doc/refman/ 5.0/cs/commit.html pro příklady.

Upravit:rychlý příklad pomocí mysqli :

$connection->autocommit(FALSE); // disable auto-commit and start a new transaction
$result  = $connection->query("INSERT INTO `table` VALUES (1,2,3)");
$result &= $connection->query("UPDATE `otherTable` SET `val1`=1 WHERE `id`=$idOfInsert");
if (!$result) {
  // One of the queries has failed: cancel the transaction
  $connection->rollback();
} else {
  // Both queries worked:commit the current transaction
  $connection->commit();
}
$connection->autocommit(TRUE); // enable auto-commit

Možná budete chtít optimalizovat dotazy (tj. neprovádět druhý, pokud první selhal, použít připravené příkazy, ...)



  1. get error HTTP Status 405 - HTTP metoda GET není podporována touto URL, ale nikdy nebyla použita `get`?

  2. Funkce Mysql vrací hodnotu z dotazu

  3. DataTable.Load zobrazuje méně řádků než zdrojový DataReader

  4. Vkládání dat pomocí mysqli