sql >> Databasteknik >  >> RDS >> Mysql

PHP MySQL infogar data till flera tabeller

En lösning skulle vara att använda Transaktioner , som gör det möjligt att få "allt eller inget"-beteende.

Tanken är följande :

  • du startar en transaktion
  • du gör dina infogningar/uppdateringar
  • om allt är OK, begår du transaktionen; som kommer att spara allt du gjorde under den här transaktionen
  • om inte, återställer du transaktionen; och allt du gjorde i den kommer att avbrytas.
  • om du inte commit och kopplar bort (om ditt PHP-skript dör, till exempel) , ingenting kommer att begås, och det du gjorde under den icke-begärda transaktionen kommer automatiskt att återställas.

För mer information kan du ta en titt på 12.4.1. BÖRJA TRANSAKTION, ÅTAGANDE och ÅTERSTÄLLNINGSsyntax , för MySQL.


Observera att transaktioner endast är tillgängliga för vissa DB-motorer :

  • MyISAM stöder inte transaktioner
  • InnoDB gör (det stöder även främmande nycklar, till exempel -- det är mycket mer avancerat än MyISAM) .



  1. mysql Utländsk nyckel begränsning är felaktigt utformad fel

  2. Importera fält med flera värden till Solr från mySQL med Solr Data Import Handler

  3. Hur byter jag namn på en primärnyckelkolumn i MySQL?

  4. Hur fixar man felaktiga strängvärdesfel?