Comment puis-je stocker une requête dans une base de données MySQL colonne puis par la suite utiliser cette requête?
Par exemple, dire que je suis de la création d'une table qui stocke les codes promo pour un site d'envoi. Je veux avoir le tableau correspondent à un code promo avec le code du programme de validation, par exemple
PROMO1: Order must have 3 items
PROMO2: Order subtotal must be greater than $50
Je voudrais stocker la requête et/ou de routine dans une colonne de la table, et être en mesure d'utiliser le contenu de valider, dans le sens de
SELECT * FROM Orders
WHERE Promo.ID = 2 AND Promo.Validation = True
Ou quelque chose à cet effet. Des idées?
- C'est vraiment une mauvaise idée. Vous ne voulez pas stocker votre logique de validation des requêtes dans la base de données. Ont validation arriver sur la demande et les contraintes (peut-être utiliser
CHECK
contraintes si disponible) pour assurer l'intégrité des données. - Et ce, alors qu'un programmeur doit mettre à jour le code de l'application chaque fois que nous ajoutons une promo, par opposition à celui de la moins-contenu technique des écrivains d'être en mesure d'entrer quelque chose dans un système de gestion de contenu?
Vous devez vous connecter pour publier un commentaire.
Je n'aurais pas enregistrer la requête dans la base de données, il y a de bien meilleures possibilités.
Vous avez à décider, ce qui correspond le mieux à vos besoins (il n'est pas clair pour moi sur la base de votre question). Vous pouvez utiliser
Vues
ou
Les Requêtes Préparées
ou
Procédures Stockées
Il y a sans doute une meilleure façon de résoudre le problème, mais la réponse à votre question est d'écrire des procédures stockées qui retournent les résultats que vous voulez. Là où je travaille (et je déteste cette conception), ils ont en fait de stocker toutes les requêtes et dml utilisé par l'application des procédures stockées.
Vous pouvez également créer de façon dynamique vos requêtes à l'aide de sql dynamique. Pour MySql, voir le post ci-dessous qui peuvent vous aider à vous.
Comment avoir le SQL Dynamique MySQL Procédure Stockée
Sinon, vous pouvez aussi stocker vos requêtes dans un format de chaîne de caractères dans la base de données, et de les récupérer et de les exécuter à l'aide de l'instruction d'EXÉCUTION, tels que post signale.
Je serais personnellement tenir à l'écart à partir de dessins comme ça si. Le stockage des requêtes XML n'est pas une mauvaise alternative, et demandez à votre application d'être écrite pour être extensible et configurable à partir de XML, de sorte que vous n'avez pas besoin d'apporter des modifications de code à ajouter de nouveaux logique de validation, et il vous suffit de le configurer en XML.