Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL:scarica un database da una query SQL

Date le tue esigenze, penso che ti sia rimasto (pseudo-codice + 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

Fondamentalmente, prendi l'elenco di tutte le tabelle, quindi esplora ogni tabella e genera INSERT istruzioni per ogni riga a mano (la maggior parte delle API ha un modo semplice per recuperare l'elenco dei nomi delle colonne, altrimenti puoi tornare a chiamare DESC TABLE ).

SHOW CREATE TABLE è fatto per te, ma sono abbastanza certo che non c'è niente di analogo da fare SHOW INSERT ROWS .

E ovviamente, invece di stampare il dump, puoi farci quello che vuoi.