sql >> Databasteknik >  >> RDS >> Mysql

MySQL (5.7) släpper lagrade procedurer via mysql.proc

Den direkta delete från procs tabellen verkar inte få en omedelbar effekt i den aktuella MySQL-sessionen.

spolningen uttalande används i MySQL för att få servern att ladda om saker (ändrar privilegierna direkt via uppdatering/borttagning och flush privileges är förmodligen den bästa analogin). Jag kunde dock inte hitta några versioner av flush som skulle påverka de lagrade processerna baserat på dokumentationen. Så jag tror inte att det finns något sätt att göra raderingen av den lagrade procen slutgiltig i den aktuella MySQL-sessionen.

Den verkliga faran med ditt tillvägagångssätt för direkt radering är att det förlitar sig på en odokumenterad funktion i MySQL. Denna funktion kan ändras utan föregående meddelande i en framtida version av MySQL, vilket gör en uppgradering omöjlig. Utan att faktiskt felsöka MySQL i sig är det också mycket svårt att säga om ditt tillvägagångssätt har några oavsiktliga biverkningar.

Av dessa skäl skulle jag inte rekommendera att använda detta tillvägagångssätt i en produktionskod. Om det är en engångsövning kan du komma undan med det.




  1. Konvertera JSON-array i MySQL till rader

  2. Välj rader där kolumnvärdet har ändrats

  3. T-SQL Hoppa över Ta lagrad procedur

  4. Konvertera Oracle SQL-fråga till Azure SQL-fråga