sql >> Base de Datos >  >> RDS >> Mysql

¿Es posible almacenar código ejecutable en un registro de tabla usando SQL?

¿Podrías? Probablemente. En prácticamente cualquier sistema de base de datos, sería posible almacenar una cadena de PL/SQL (para Oracle), T-SQL (para SQL Server), etc. que podría leerse y ejecutarse dinámicamente en tiempo de ejecución.

¿Deberías? Casi seguro que no. Construir este tipo de dinamismo rara vez vale la pena. Por lo general, hace que su sistema sea mucho más difícil de entender y depurar, ya que ahora tiene fragmentos de código como datos además del código que probablemente verá. Rompe todo tipo de buenas prácticas de programación (separar bits de código relacionado, algunos de los cuales se convierten en la base del código propiamente dicha y otros bits se implementan en filas en una tabla), lo que inevitablemente hace que exponga métodos al mundo que no usaría. 't si el sistema se diseñó correctamente, etc.) Y hace que la seguridad sea mucho más complicada ya que esencialmente está creando una maravillosa vulnerabilidad de inyección de SQL en su sistema. Obtiene mucha más flexibilidad, pero es bastante raro que un sistema realmente use esa flexibilidad con la frecuencia suficiente para compensar las desventajas.