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

MySQL:volcar una base de datos de una consulta SQL

Dados tus requisitos, creo que te queda (pseudocódigo + SQL)

tables = mysql_fetch "SHOW TABLES"
foreach table in tables
    create = mysql_fetch "SHOW CREATE TABLE table"
    print create
    rows = mysql_fetch "SELECT * FROM table"
    foreach row in rows
        // or could use VALUES (v1, v2, ...), (v1, v2, ...), .... syntax (maybe preferable for smaller tables)
        insert = "INSERT (fiedl1, field2, field2, etc) VALUES (value1, value2, value3, etc)"
        print insert

Básicamente, obtenga la lista de todas las tablas, luego recorra cada tabla y genere INSERT declaraciones para cada fila a mano (la mayoría de las API tienen una forma simple de obtener la lista de nombres de columna, de lo contrario, puede volver a llamar a DESC TABLE ).

SHOW CREATE TABLE está hecho para usted, pero estoy bastante seguro de que no hay nada análogo que hacer SHOW INSERT ROWS .

Y, por supuesto, en lugar de imprimir el volcado, puedes hacer lo que quieras con él.