A volte è necessario concatenare stringhe per creare istruzioni SQL. Ovviamente devi essere molto attento in tali circostanze. I nomi delle tabelle variabili sono una di queste situazioni.
Probabilmente in questo caso dovresti usare un built-in come quoteIdentifier
per assicurarti di far fronte a tutte le circostanze necessarie.
Inoltre aggiungerei una restrizione sui caratteri consentiti:
if(table_name.match(".*[^a-zA-Z_].*")) throw_big_error();
Sì, ciò limita i nomi delle tabelle oltre ciò che supporta il RDBMS sottostante.
Hai bisogno di supportare i nomi delle tabelle con spazi al loro interno? O è accettabile proibire caratteri speciali nei nomi delle tabelle? Se puoi, fallo.
"Fallo giusto, invece di chiedere se sbagliare è sicuro".
Poiché stai esaminando il codice, questo è il commento al codificatore.