sql >> Databasteknik >  >> RDS >> Mysql

MySQL:Dumpa en databas från en SQL-fråga

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.



  1. Hur får man åtkomst till var-mappen och en MySQL-databasmapp med .frm-, .MYD- och .MYI-filer för varje tabell i CPanel?

  2. Finns det ett bra sätt att utföra SQL-dumpning av MySQL-databas i DataGrip?

  3. få ett antal unika värden utan att separera värden som hör till samma värdeblock

  4. SQL Server Passthrough-fråga som grund för en DAO-postuppsättning i Access