Je souhaite effectuer une suppression en cascade pour certaines tables de ma base de données, mais je suis intéressé par ce qui se passe en cas d'échec lors de la suppression de quelque chose. Est-ce que tout va revenir en arrière?CASCADE Delete est-il exécuté en tant que transaction?
Répondre
En général¹, oui, les suppressions en cascade sont effectuées dans la même transaction (ou sous-transaction) que votre suppression d'origine. Cependant, vous devriez lire la documentation de votre serveur SQL.
¹ L'exception est si vous utilisez une base de données qui ne prend pas en charge les transactions, comme MySQL avec les tables MyISAM.
Les suppressions en cascade sont en effet atomiques, elles seraient peu utiles sans cette propriété. C'est dans la documentation.
+1 pour "ils seraient de peu d'utilité sans cette propriété" :-) Très vrai. –
Il est à noter que un événement en cascade devrait être atomique (c'est-à-dire avec une transaction). Mais, comme le souligne Joel Coehoorn, consultez la documentation de votre base de données.
En fait, ce n'est pas Joel Coehoorn qui le souligne. Si vous n'êtes pas sûr de l'auteur, il vaut mieux utiliser "cette réponse" pour créer un lien vers son permalien. – tzot
- 1. Transaction SQL Server imbriquée en cascade delete
- 2. DB2 cascade delete commande?
- 3. Comment utiliser delete cascade dans mysql?
- 4. Java: exécuté en tant qu'administrateur
- 5. Projet d'installation Visual Studio - exécuté en tant que compte système
- 6. MySql: UNION n'est pas exécuté lorsqu'il est exécuté en tant que vue
- 7. comment puis-je déterminer si un script python est importé en tant que module ou exécuté en tant que script?
- 8. Un Jar signé peut-il être exécuté en tant qu'exécutable?
- 9. .NET en tant que client, Java en tant que serveur
- 10. Est-ce que Visual Studio Unit Tests peut être exécuté en tant qu'administrateur sur Vista?
- 11. Marquez MSI de sorte qu'il doit être exécuté en tant que compte administrateur
- 12. Le script PHP exécuté en tant que tâche planifiée se bloque - aide!
- 13. Déclencheurs Cascade dans SQLite
- 14. Sortie en tant que tableau
- 15. UserControl en tant que tabItem
- 16. appostrophes venir en tant que
- 17. MSBuild delete process
- 18. Comment faire en sorte que log4net génère des fichiers journaux lorsqu'il est exécuté en tant qu'utilisateur non-administrateur?
- 19. SCardEstablishContext se bloque en tant que service
- 20. AJAX delete - en utilisant jQuery
- 21. Colonnes d'horodatage NHibernate et sql en tant que version
- 22. JPA: Reverse cascading delete
- 23. hibernate cascade suppression
- 24. Résolution en cascade dans Unity
- 25. ExtJs en cascade-Combos Problème
- 26. Choisir la base de données FILEGROWTH en tant que% ou en tant que Taille fixe
- 27. Affichage des fenêtres d'un processus s'exécutant en tant que compte système ou en tant que service
- 28. Problème de cascade NHibenate
- 29. Comment installer Tomcat en tant que démon sur OS X?
- 30. Comment envoyer des données XML en tant que requête à l'aide du service Web XML
En général? quand ne sont-ils pas dans une transaction? –
Whe la base de données ne supporte pas transasctions par exemple. Voir MySQL avec les tables MyISAM ... –
@ Cd-MaN MyISAM ne prend pas non plus en charge les clés étrangères, donc vous devrez chercher assez fort un cas où cette exception entre en jeu. – Brilliand