Biorąc pod uwagę Twoje wymagania, myślę, że pozostało Ci (pseudo-kod + 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
Zasadniczo pobierz listę wszystkich tabel, a następnie przejdź do każdej tabeli i wygeneruj INSERT
instrukcje dla każdego wiersza ręcznie (większość interfejsów API ma prosty sposób na pobranie listy nazw kolumn, w przeciwnym razie możesz wrócić do wywołania DESC TABLE
).
SHOW CREATE TABLE
jest zrobione, ale jestem prawie pewien, że nie ma nic analogicznego do zrobienia SHOW INSERT ROWS
.
I oczywiście zamiast drukowania zrzutu możesz zrobić z nim, co chcesz.