Non puoi sostituire un nome di tabella con un ? in una dichiarazione preparata e poi fai inserire il nome della tabella.
I nomi dinamici delle tabelle sono generalmente una cattiva idea :è meglio creare 1 grande tabella e aggiungere una colonna extra (indicizzata) per il "nome della tabella virtuale".
Se hai davvero bisogno di tabelle dinamiche, dovrai concatenare il nome della tabella in PREPARE stesso.
Pro e contro dei nomi dinamici delle tabelle
Supponiamo che invece di mettere tutti gli utenti all'interno di una tabella, users con colonne ID , Name , e-mail , country , ... , li inserisci in tabelle dinamiche, users_country , con colonne ID , Name , e-mail , ...
-
Non puoi interrogare facilmente tutte le tabelle. Supponiamo di voler sapere quanti dei tuoi utenti sono maschi:devi interrogare ogni tabella e UNION i risultati. Non sarà più veloce.
-
Puoi comunque dividere fisicamente le tabelle usando PARTITIONS, ma la tua vista logica è sempre la stessa. Qualsiasi vantaggio che pensi di avere utilizzando tabelle separate può solitamente essere ottenuto utilizzando un altro metodo.