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

PHP MySQL vkládání dat do více tabulek

Řešením by bylo použít Transakce , které umožňují získat chování „vše nebo nic“.

Myšlenka je následující:

  • zahájíte transakci
  • provádíte vložení/aktualizace
  • pokud je vše v pořádku, potvrdíte transakci; která uloží vše, co jste během této transakce provedli
  • pokud ne, vrátíte transakci zpět; a vše, co jste v něm udělali, bude zrušeno.
  • pokud neprovedete potvrzení a neodpojíte se (například pokud váš skript PHP zanikne) , nic nebude potvrzeno a to, co jste provedli během transakce bez závazku, bude automaticky vráceno zpět.

Pro více informací se můžete podívat na 12.4.1. START TRANSACTION, COMMIT a ROLLBACK syntaxe , pro MySQL.


Upozorňujeme, že transakce jsou dostupné pouze pro některé DB motory:

  • MyISAM nepodporuje transakce
  • InnoDB ano (podporuje například také cizí klíče – je mnohem pokročilejší než MyISAM) .



  1. Chyba syntaxe hledání a nahrazení MySQL

  2. Záloha SQL Server 2017 -1

  3. postgreSQL - in vs

  4. Tabulky vs. databáze:Je čas přejít? Část 2