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

MySQL:Dump en database fra en SQL-forespørgsel

I betragtning af dine krav, tror jeg, du står tilbage med (pseudo-kode + 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

Helt grundlæggende skal du hente listen over alle tabeller, derefter gå hver tabel og generere INSERT sætninger for hver række manuelt (de fleste API'er har en enkel måde at hente listen over kolonnenavne på, ellers kan du falde tilbage til at kalde DESC TABLE ).

SHOW CREATE TABLE er gjort for dig, men jeg er ret sikker på, at der ikke er noget tilsvarende at gøre SHOW INSERT ROWS .

Og selvfølgelig, i stedet for at udskrive dumpen kan du gøre, hvad du vil med det.



  1. Indkøbskurv og lagerstyring

  2. Brug af et stik med Helm-installeret Kafka/Confluent

  3. MySQL-fejl 2006 (HY000) på linje 406:MySQL-serveren er forsvundet

  4. Sådan kontrollerer du størrelsen af ​​alle tabeller i en database i MySQL