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

Est-il possible de stocker du code exécutable dans un enregistrement de table à l'aide de SQL

Pourrais-tu? Probablement. Dans pratiquement n'importe quel système de base de données, il serait possible de stocker une chaîne de PL/SQL (pour Oracle), T-SQL (pour SQL Server), etc. qui pourrait être lue et exécutée dynamiquement au moment de l'exécution.

Devrais-tu? Presque certainement pas. Construire ce type de dynamisme vaut rarement la peine. Cela rend généralement votre système beaucoup plus difficile à comprendre et à déboguer puisque vous avez maintenant des morceaux de code en tant que données en plus du code que vous êtes susceptible de regarder. Cela rompt toutes sortes de bonnes pratiques de programmation (séparer des morceaux de code associé dont certains en font la base de code proprement dite et d'autres morceaux qui sont implémentés en lignes dans une table, cela vous amène inévitablement à exposer au monde des méthodes que vous voudriez 't si le système a été conçu correctement, etc.) Et cela rend la sécurité beaucoup plus compliquée puisque vous construisez essentiellement une merveilleuse vulnérabilité d'injection SQL dans votre système. Vous obtenez beaucoup plus de flexibilité, mais il est assez rare qu'un système utilise cette flexibilité suffisamment souvent pour compenser les inconvénients.