sql >> Database >  >> RDS >> Mysql

Is het mogelijk om uitvoerbare code op te slaan in een tabelrecord met behulp van SQL?

Kan je? Waarschijnlijk. In vrijwel elk databasesysteem zou het mogelijk zijn om een ​​reeks PL/SQL (voor Oracle), T-SQL (voor SQL Server), enz. op te slaan die tijdens runtime dynamisch kan worden gelezen en uitgevoerd.

Zou je? Vrijwel zeker niet. Het opbouwen van dit soort dynamiek is zelden de moeite waard. Het maakt je systeem over het algemeen veel moeilijker te begrijpen en te debuggen, omdat je nu stukjes code als gegevens hebt naast de code waar je waarschijnlijk naar kijkt. Het breekt allerlei goede programmeerpraktijken (door stukjes gerelateerde code te scheiden, waarvan sommige in de eigenlijke codebank terechtkomen en andere bits in rijen in een tabel worden geïmplementeerd, zorgt het er onvermijdelijk voor dat je methoden aan de wereld blootstelt die je zou willen niet als het systeem goed is ontworpen, enz.) En het maakt de beveiliging veel gecompliceerder omdat je in wezen een prachtige SQL-injectie-kwetsbaarheid in je systeem inbouwt. Je krijgt veel meer flexibiliteit, maar het is vrij zeldzaam dat een systeem die flexibiliteit vaak genoeg gebruikt om de nadelen te compenseren.



  1. Erlang en het gebruik van Heap Memory

  2. MySQL:samengestelde index fulltext+btree?

  3. PostgreSQL-overerving met JPA, Hibernate

  4. Wijzigingsmelding Oracle-database met ODP.NET werkt niet