Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

É possível armazenar código executável em um registro de tabela usando SQL


Você poderia? Provavelmente. Em praticamente qualquer sistema de banco de dados, seria possível armazenar uma string de PL/SQL (para Oracle), T-SQL (para SQL Server), etc. que poderia ser lida e executada dinamicamente em tempo de execução.

Você deveria? Quase certamente não. Construir esse tipo de dinamismo raramente vale a pena. Geralmente, isso torna seu sistema muito mais difícil de entender e depurar, pois agora você tem bits de código como dados, além do código que provavelmente verá. Ele quebra todos os tipos de boas práticas de programação (separando bits de código relacionado, alguns dos quais fazem parte da base de código e outros são implementados em linhas em uma tabela, inevitavelmente faz com que você exponha métodos ao mundo que você 't se o sistema foi projetado corretamente, etc.) E torna a segurança muito mais complicada, já que você está essencialmente criando uma maravilhosa vulnerabilidade de injeção de SQL em seu sistema. Você obtém muito mais flexibilidade, mas é muito raro que um sistema realmente use essa flexibilidade com frequência suficiente para compensar as desvantagens.