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

PHP MySQL wstawiający dane do wielu tabel

Rozwiązaniem byłoby użycie Transakcji , które pozwalają uzyskać zachowanie "wszystko albo nic".

Pomysł jest następujący:

  • rozpoczynasz transakcję
  • Ty robisz swoje wstawki/aktualizacje
  • jeśli wszystko jest w porządku, zatwierdzasz transakcję; który zapisze wszystko, co zrobiłeś podczas tej transakcji
  • jeśli nie, cofasz transakcję; a wszystko, co w nim zrobiłeś, zostanie anulowane.
  • jeśli nie zatwierdzisz i nie odłączysz się (na przykład jeśli twój skrypt PHP zginie) , nic nie zostanie zatwierdzone, a to, co zrobiłeś podczas niezatwierdzonej transakcji, zostanie automatycznie wycofane.

Więcej informacji znajdziesz w 12.4.1. ROZPOCZNIJ TRANSAKCJĘ, ZATWIERDZAJ i WYCOFAJ składnię , dla MySQL.


Pamiętaj, że transakcje są dostępne tylko dla niektórych wyszukiwarek DB:

  • MyISAM nie obsługuje transakcji
  • InnoDB robi (obsługuje również klucze obce, na przykład – jest znacznie bardziej zaawansowany niż MyISAM) .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy ocena logiki MySQL jest leniwa/short-circuiting w klauzuli JOIN?

  2. Jak zsumować ciąg znaków oddzielonych przecinkami w SQL?

  3. podczas gdy na IDataReader.Read nie działa ze zwrotem wydajności, ale foreach na czytniku działa

  4. Railsy, ​​MySQL i Snow Leopard

  5. Eksportowanie obiektu Blob z bazy danych MySQL do pliku tylko z SQL