MySQL - Es posible crear un enumerado con nombres de tablas?

 
Vista:
Imágen de perfil de statham
Val: 86
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Es posible crear un enumerado con nombres de tablas?

Publicado por statham (34 intervenciones) el 26/04/2019 09:44:28
Por ejemplo tienes 30 tablas las cuales debes realizar a todas ellas la misma consulta.
Por no hacer 30 consultas, haces 1 y que el enumerado se vaya recorriendo y ejecutando.


Mera curiosidad, un saludo y buen viernes.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de Vega
Val: 69
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Es posible crear un enumerado con nombres de tablas?

Publicado por Vega (30 intervenciones) el 26/04/2019 10:14:29
show tables;
o
esta para sql dinámico:
SELECT table_name FROM information_schema.tables;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de statham
Val: 86
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Es posible crear un enumerado con nombres de tablas?

Publicado por statham (34 intervenciones) el 26/04/2019 10:18:55
Vega, no me refería para nada a eso (tan básico ademas )


Te explico, tenemos 30 tablas y queremos realizar una consulta para un update de un campo de todas las tablas.

Por no hacer una consulta para cada tabla, se podria meter el nombre de las tablas en un enumerado, y este meterlo en la consulta para que coja todos?


enum{tabl1, tabla 2, tabla 3, tabla 4, etc........} tablas

select * from tablas;

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vega
Val: 69
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Es posible crear un enumerado con nombres de tablas?

Publicado por Vega (30 intervenciones) el 26/04/2019 10:36:20
¿seguro?
SELECT table_name FROM information_schema.tables;
es la manera más eficaz de hacer lo que pides.

Si combinas el resultado de la consulta con una variable que contiene la plantilla del SQL que quieres ejectutar y un comando EXECUTE, deberías tener todo lo que necesitas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de statham
Val: 86
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Es posible crear un enumerado con nombres de tablas?

Publicado por statham (34 intervenciones) el 26/04/2019 10:43:07
Cierto, perdona, pero me salen mas cosas aparte del nombre de las tablas

podrias poner un breve ejemplo?

por ejemplo, hacer un union todas con todas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vega
Val: 69
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Es posible crear un enumerado con nombres de tablas?

Publicado por Vega (30 intervenciones) el 26/04/2019 12:34:37
dependiendo lo que estes solucionando tienes varias maneras the actualizar multiples tablas a la vez.

Si lo que quieres hacer es puntual, genera una lista de tablas copia el sql generado y ejecutalo.

1
2
select table_name , replace('Select * from {tabla};', '{tabla}',table_name) from information_schema.tables
where table_type = 'BASE TABLE'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar