Eine Lösung wäre die Verwendung von Transaktionen , die ein "Alles-oder-Nichts"-Verhalten ermöglichen.
Die Idee ist die folgende:
- Sie starten eine Transaktion
- Sie führen Ihre Einfügungen/Aktualisierungen durch
- Wenn alles in Ordnung ist, bestätigen Sie die Transaktion; wodurch alles gespeichert wird, was Sie während dieser Transaktion gemacht haben
- Wenn nicht, machen Sie die Transaktion rückgängig; und alles, was Sie darin getan haben, wird storniert.
- wenn Sie nicht festschreiben und die Verbindung trennen (wenn Ihr PHP-Skript zum Beispiel stirbt) , wird nichts festgeschrieben, und was Sie während der nicht festgeschriebenen Transaktion getan haben, wird automatisch rückgängig gemacht.
Weitere Informationen finden Sie unter 12.4.1. START TRANSACTION-, COMMIT- und ROLLBACK-Syntax , für MySQL.
Beachten Sie, dass Transaktionen nur für einige DB-Engines verfügbar sind:
- MyISAM unterstützt keine Transaktionen
- InnoDB tut (es unterstützt zum Beispiel auch Fremdschlüssel -- es ist weit fortgeschrittener als MyISAM) .