Je voudrais que mon programme puisse installer des plugins et annuler toutes les modifications apportées en cas d'erreur. Je crée donc une transaction qui conserve toutes les choses qui ont été ajoutées lors de l'installation du plugin. Le problème est que le plugin peut vouloir créer des tables, ce qui valide automatiquement la transaction en cours dans MySQL.MySQL Créer des tables sans valider la transaction en cours
Voir Statements That Cause an Implicit Commit sur le site Web de MySQL.
Une idée sur comment je pourrais le faire? J'ai pensé utiliser des tables temporaires car elles ne sont pas automatiquement validées, sauf si elles utilisent trop de mémoire, mais il semble que les tables temporaires ne puissent pas être annulées de toute façon (et je n'ai pas trouvé un moyen de les convertir en permanent). les tables).
Je viens de découvrir "save points", mais je ne comprends pas vraiment comment/quand il doit être utilisé ni s'il peut m'aider à réaliser ce que je veux.
OK merci pour l'info. Je ne savais même pas Oracle ne le supportait pas. Mon application utilise une couche abstraite qui permet de supporter différents SGBD, donc je ne peux pas vraiment creuser dans chacun d'entre eux et ajouter le support à la transaction complète sur DDL ... et même si c'était juste MySQL, ce serait probablement trop complexe pour moi! – user276648