MySQL - MySQLdump

 
Vista:
sin imagen de perfil
Val: 8
Ha disminuido su posición en 6 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

MySQLdump

Publicado por Rafael (5 intervenciones) el 24/04/2019 18:27:36
Buenas tardes,

Tengo un esquema de base de datos del cual debo enviar backup a un cliente.

La cuestión es que esa base de datos tiene registros de varios clientes y hay tablas de las cuales solo tendría que enviarle sus registros y no todos.

He tratado de hacerlo de forma automática con mysqldump pero el problema es que no encuentro la forma de aplicar una condición where diferente a cada tabla. Se puede aplicar un where en el comando pero aplica a todas las tablas y no me sirve.

¿Alguna idea de cómo poder hacerlo con esta herramienta u otra?

Para aclararlo más pongo un ejemplo:

TABLA A: CAMPO 1, CAMPO 2, CAMPO 3
TABLA B: CAMPO 1, CAMPO 2, CAMPO 3, CAMPO 4
TABLA C: CAMPO 1, CAMPO 2

Necesito un backup del esquema que solo incluya los datos de la tabla A que cumpla una condición para el campo 1, los datos de la tabla B que cumplan una condición para el campo 4 y los datos de la tabla C que cumplan una condición para el campo 2.

Gracias,

Rafa
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
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

MySQLdump

Publicado por Vega (30 intervenciones) el 24/04/2019 18:50:40
Yo que tu crearía una base de datos derivada de la original con el mismo esquema en la cual las tablas sólo tienen los registros pertinentes al cliente en cuestión, y luego haría el backup de dicha copia.

Creando está funcionalidad con un procedimiento almacenado solucionaría el requisito para cualquier cliente futuro.
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
sin imagen de perfil
Val: 8
Ha disminuido su posición en 6 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

MySQLdump

Publicado por Rafael (5 intervenciones) el 25/04/2019 12:26:56
Buenos días,

Gracias por la sugerencia. Es buena idea pero el tema de los procedimientos almacenados no lo controlo mucho todavía y me llevaría creo más tiempo del que necesito pero me lo apunto para el futuro.

También había pensado en crear vistas de aquellas tablas que no quiero exportar completas en el backup pero si no me equivoco la vista no puede llamarse como la tabla así que tampoco me convence del todo.

Seguiré pensando y si a alguien se le ocurre algo agradezco la aportación.

Saludos,

Rafa
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

MySQLdump

Publicado por Vega (30 intervenciones) el 25/04/2019 14:13:41
bueno pues en su defecto podrias hacer lo siguiente para cada tabla :

INSERT INTO CopiaDeBaseDeDatos.Tabla (Columna1, Columna2)
SELECT columna1, columna2 FROM BaseDeDatos.tabla
WHERE {condiciones de cliente}
;
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
sin imagen de perfil
Val: 8
Ha disminuido su posición en 6 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

MySQLdump

Publicado por Rafael (5 intervenciones) el 25/04/2019 17:47:45
Hola Vega,

Esa solución podría servirme mientras lo hago con un procedimiento almacenado. Me preparo un script que ejecute ese comando para cada tabla y con una tarea programada lo automatizo todo. Primero paso los datos de una a otra y cuando la base de datos de copia esté lista se ejecuta el mysqldump.

Muchas gracias de nuevo,

Rafa
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