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.