Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MYSQL, PHP wstawiaj do wielu tabel w bazie danych

Ponieważ te dwa wstawiania są wykonywane niezależnie, inny program działający równolegle może zobaczyć bazę danych w stanie, w którym pierwsze wstawienie zostało wykonane, a drugie nie.

To, czy jest to problem, czy nie, zależy od logiki aplikacji. W Twoim przypadku trudno to stwierdzić bez dodatkowych informacji. Prawdopodobnie nie. Transakcja finansowa obejmująca dwa konta jest przykładem, w którym jest problem:nie chcesz, aby suma wszystkich sald kont była w każdej chwili błędna.

Jeśli uważasz, że tego potrzebujesz, możesz uczynić operację niepodzielną kosztem wydajności:inny program zobaczy bazę danych przed pierwszym wstawieniem lub po drugim wstawieniu. Działa to tak:

$result = FALSE;
if (mysql_query('BEGIN')) {
    if (mysql_query($query1) &&
        mysql_query($query2))
        $result = mysql_query('COMMIT'); // both queries looked OK, save
    else
        mysql_query('ROLLBACK'); // problems with queries, no changes
}

Silnik pamięci masowej musi obsługiwać transakcje, tj. musi to być InnoDB . W przeciwnym razie to po cichu nie zadziała.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jak sprawdzić liczbę dni w miesiącu w mysql

  2. Nazewnictwo schematów hibernacji różni się w zależności od systemu operacyjnego

  3. SQL:wybieranie wierszy, w których wartość kolumny zmieniła się z poprzedniego wiersza

  4. Jak wyodrębnić miesiąc i rok w dacie MySQL i porównać je?

  5. MYSQL:jak zmienić kolejność tabeli