sql >> Databáze >  >> RDS >> Mysql

MySQL:Výpis databáze z dotazu SQL

Vzhledem k vašim požadavkům si myslím, že vám zbývá (pseudokód + 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

V podstatě načtěte seznam všech tabulek, pak každou tabulku projděte a vygenerujte INSERT příkazy pro každý řádek ručně (většina rozhraní API má jednoduchý způsob, jak načíst seznam názvů sloupců, jinak se můžete vrátit k volání DESC TABLE ).

SHOW CREATE TABLE je hotovo za vás, ale jsem si docela jistý, že neexistuje nic podobného SHOW INSERT ROWS .

A samozřejmě, místo tisku výpisu si s ním můžete dělat, co chcete.



  1. Jak filtrovat (nebo nahradit) znaky unicode, které by v UTF-8 zabraly více než 3 bajty?

  2. Víte, kdy opakovat nebo selhat při volání SQL Server z C#?

  3. MySql nemůže aktualizovat nadřazený řádek, když mám ON UPDATE CASCADE

  4. Přidejte interval k časové značce pomocí Ecto fragmentů