Bonjour,
Je suis en train d'écrire un programme en Visual Studio dans lequel je souhaite créer une classe générique data d'accès aux données qui gère les transactions, les accès concurrentiels et les mises à jours indépendamment des programmes d'utilisations et des bases de données.
Bien qu'un peu lourde d'utilisation ma classe Data fonctionne correctement comme je le souhaite.
Seulement j'ai un problème : toutes les types BD que j'utilise en interface de ma classe n'ont pas de type de contrainte de clé étrangère qui fonctionne avec la clause ON DELETE CASCADE et ON UPDATE CASCADE comme le fait MySql avec les tables de type InnoDB. En revanche si elles n'ont pas ce genre de clause elles permettent l'évaluation de la contrainte au moment du COMMIT et non au moment de l'execution de la requête DELETE ou UPDATE (sauf si biensûr la Base de données est Excel ou même un fichier txt en ODBC : encore que je n'ai pas essayé). J'ai donc prévu le coup (dans mon programme et non dans la classe pour gérer la mise à jour ou la suppression non pas au moment de la requête DELETE et UPDATE mais bien avant dans la logique de mon programme).
Cependant après avoir cherché sur le site de MySQL, à aucun moment, il est proposé l'évaluation de la contrainte au moment du COMMIT. Je peux bien évidemment utilisé le ON UPDATE CASCADE et ON DELETE CASCADE mais pour des raisons que je ne vais pas étendre ici, c'est comme si je simuler un accès concurrentiel (donc rien ne se met à jour).
Je voulais donc savoir si quelqu'un d'entre vous pouvez me confirmer que l'évalutation d'une contrainte au moment du COMMIT ça n'existe pas en MySQL et si ça existe merci de me donner la requête de création de la contrainte qui le fait merci
Partager