Een oplossing zou zijn om Transacties te gebruiken , die het mogelijk maken om "alles of niets" gedrag te krijgen.
Het idee is het volgende:
- u start een transactie
- u doet uw invoegingen/updates
- als alles in orde is, begaat u de transactie; waarmee u alles wat u tijdens deze transactie hebt gedaan, opslaat
- zo niet, dan draai je de transactie terug; en alles wat je erin deed wordt geannuleerd.
- als je niet vastlegt en de verbinding verbreekt (als je PHP-script sterft, bijvoorbeeld) , er wordt niets vastgelegd en wat u tijdens de niet-vastgelegde transactie hebt gedaan, wordt automatisch teruggedraaid.
Voor meer informatie kunt u een kijkje nemen op 12.4.1. START TRANSACTIE, COMMIT en ROLLBACK-syntaxis , voor MySQL.
Houd er rekening mee dat transacties alleen beschikbaar zijn voor sommige DB-engines:
- MijnISAM ondersteunt geen transacties
- InnoDB doet (het ondersteunt bijvoorbeeld ook buitenlandse sleutels -- het is veel geavanceerder dan MyISAM) .