Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL:Sichern Sie eine Datenbank aus einer SQL-Abfrage

Angesichts Ihrer Anforderungen denke ich, dass Sie mit (Pseudo-Code + SQL) gelassen werden

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

Rufen Sie im Grunde die Liste aller Tabellen ab, gehen Sie dann jede Tabelle durch und generieren Sie INSERT Anweisungen für jede Zeile von Hand (die meisten APIs haben eine einfache Möglichkeit, die Liste der Spaltennamen abzurufen, andernfalls können Sie auf den Aufruf von DESC TABLE zurückgreifen ).

SHOW CREATE TABLE ist für Sie erledigt, aber ich bin mir ziemlich sicher, dass es nichts Analoges gibt, um SHOW INSERT ROWS zu tun .

Und anstatt den Dump auszudrucken, können Sie natürlich damit machen, was Sie wollen.