sql >> Databasteknik >  >> RDS >> Mysql

Kör skalkommando från MySQL

Detta är inte så mycket ett svar på frågan som det är motivering för den här typen av funktionalitet - vilket förnekar de som skulle säga "du borde göra något annat" eller "varför skulle du vilja det".

Jag har en databas som jag försöker hålla strikta regler för - jag vill inte ha föräldralösa barn någonstans. Referensintegritetskontroller hjälper mig med detta på tabellnivå, men jag måste behålla en del av datan som filer i filsystemet (detta är ett resultat av en direkt order från min chef att inte lagra några binära data i själva databasen).

Den uppenbara lösningen här är att ha en trigger som aktiveras vid radering av en post, som sedan automatiskt raderar den associerade externa filen.

Nu inser jag att UDF:er kan ge en lösning, men det verkar vara mycket C/C++-arbete för att helt enkelt ta bort en fil. Själva databasbehörigheterna skulle säkert ge åtminstone några säkerhet från tänkbara angripare.

Nu inser jag att jag skulle kunna skriva ett skalskript eller något sådant som skulle kunna ta bort tabellposten och sedan gå och ta bort den relaterade filen, men återigen, det är utanför domänen för databasen själv . Som en gammal instruktör en gång sa till mig "verksamhetens regler ska återspeglas i databasens regler". Som man tydligt kan se kan jag inte genomdriva detta med MySQL.



  1. Hur kan jag släppa alla tabeller i en PostgreSQL-databas?

  2. Hur man hanterar rumstillgänglighet baserat på dagars eller månaders ockupation

  3. Mysql:att lägga till främmande nyckel ger ingen varning/fel på MyISAM-tabeller

  4. Använder en webbplats för flera domäner i PHP