Mysql
 sql >> Base de données >  >> RDS >> Mysql

Exécution de la commande shell à partir de MySQL

Il ne s'agit pas tant d'une réponse à la question que d'une justification de ce type de fonctionnalité - d'où la négation de ceux qui diraient "vous devriez faire autre chose" ou "pourquoi voudriez-vous le faire".

J'ai une base de données sur laquelle j'essaie de maintenir des règles strictes - je ne veux d'orphelins nulle part. Les contrôles d'intégrité référentielle m'aident au niveau de la table, mais je dois conserver certaines des données sous forme de fichiers dans le système de fichiers (cela résulte d'un ordre direct de mon patron de ne stocker aucune donnée binaire dans la base de données elle-même).

La solution évidente ici est d'avoir un déclencheur qui se déclenche lors de la suppression d'un enregistrement, qui supprime ensuite automatiquement le fichier externe associé.

Maintenant, je me rends compte que les UDF peuvent fournir une solution, mais cela semble être beaucoup de travail C/C++ pour simplement supprimer un fichier. Les autorisations de base de données elles-mêmes fourniraient sûrement au moins certaines sécurité contre les agresseurs potentiels.

Maintenant, je me rends compte que je pourrais écrire un script shell ou un autre qui pourrait supprimer l'enregistrement de la table, puis supprimer le fichier associé, mais encore une fois, c'est en dehors du domaine de la base de données elle-même . Comme me l'a dit un vieil instructeur "les règles de l'entreprise doivent se refléter dans les règles de la base de données". Comme on peut le voir clairement, je ne peux pas appliquer cela en utilisant MySQL.