Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Ist es möglich, ausführbaren Code mit SQL in einem Tabellendatensatz zu speichern?

Könnten Sie? Wahrscheinlich. In praktisch jedem Datenbanksystem wäre es möglich, eine Zeichenfolge von PL/SQL (für Oracle), T-SQL (für SQL Server) usw. zu speichern, die zur Laufzeit gelesen und dynamisch ausgeführt werden könnte.

Sollten Sie? Mit ziemlicher Sicherheit nicht. Der Aufbau einer solchen Dynamik lohnt sich selten. Es macht Ihr System im Allgemeinen viel schwieriger zu verstehen und zu debuggen, da Sie jetzt zusätzlich zu dem Code, den Sie wahrscheinlich tatsächlich betrachten, Code-Bits als Daten haben. Es bricht alle möglichen guten Programmierpraktiken (das Trennen von Bits verwandten Codes, von denen einige es in die eigentliche Codebasis schaffen, und andere Bits, die in Zeilen in einer Tabelle implementiert werden, führt zwangsläufig dazu, dass Sie der Welt Methoden zur Verfügung stellen, die Sie tun würden nicht, wenn das System richtig entworfen wurde usw.) Und es macht die Sicherheit viel komplizierter, da Sie im Wesentlichen eine wunderbare SQL-Injection-Schwachstelle in Ihr System einbauen. Sie erhalten viel mehr Flexibilität, aber es ist ziemlich selten, dass ein System diese Flexibilität oft genug nutzt, um die Nachteile auszugleichen.