Med tanke på dina krav tror jag att du har kvar (pseudokod + 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
I princip, hämta listan över alla tabeller, gå sedan varje tabell och generera INSERT
satser för varje rad för hand (de flesta api:er har ett enkelt sätt att hämta listan med kolumnnamn, annars kan du falla tillbaka till att anropa DESC TABLE
).
SHOW CREATE TABLE
är gjort för dig, men jag är ganska säker på att det inte finns något liknande att göra SHOW INSERT ROWS
.
Och naturligtvis, istället för att skriva ut dumpen kan du göra vad du vill med den.