sql >> Base de Datos >  >> RDS >> Mysql

Crear tablas con nombres dinámicos a través del procedimiento almacenado

¿No puedes reemplazar un nombre de tabla por un ? en una declaración preparada y luego haga que la ejecución inserte el nombre de la tabla.

Los nombres de tablas dinámicas suelen ser una mala idea :es mejor hacer 1 tabla grande y agregar una columna adicional (indexada) para el "nombre de la tabla virtual".

Si realmente necesita tablas dinámicas, tendrá que concatenar el nombre de la tabla en PREPARE mismo.

Pros y contras de los nombres de tablas dinámicas

Suponga que en lugar de colocar a todos los usuarios dentro de una tabla, users con columnas ID , Name , e-mail , country , ... , los pones en tablas dinámicas, users_country , con columnas ID , Name , e-mail , ...

  • No puede consultar fácilmente todas las tablas. Digamos que desea saber cuántos de sus usuarios son hombres:debe consultar cada tabla y UNIR los resultados. No será más rápido.

  • Puede dividir físicamente las tablas usando PARTICIONES de todos modos, pero su vista lógica sigue siendo la misma. Cualquier ventaja que crea tener usando tablas separadas generalmente se puede lograr usando otro método.