Mysql
 sql >> база данни >  >> RDS >> Mysql

Множество заявки зависят една от друга

Можете да използвате транзакции, ако двигателят, който използвате, го поддържа (InnoDB, BDB).

Вижте http://dev.mysql.com/doc/refman/ 5.0/bg/commit.html за примери.

Редактиране:бърз пример с 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

Може да искате да оптимизирате заявките (т.е. да не изпълнявате втората, ако първата е неуспешна, да използвате подготвени изрази, ...)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Динамично задаване на __tablename__ за разделяне в SQLAlchemy?

  2. Изберете последните N реда от MySQL

  3. Присъединяване на таблица с MAX стойност от друга

  4. Symfony2 Doctrine изпълнява SQL от файл в CLI

  5. Как да създадете база данни от скрипт в MySQL