【问题标题】:How to get query that would recreate sql table in PHPMyAdmin如何获取将在 PHPMyAdmin 中重新创建 sql 表的查询
【发布时间】:2011-10-22 10:31:02
【问题描述】:

我在 MySQL 服务器上有一个表,并且想要获取将重新创建表的 SQL。

如何获取查询以重新创建 SQL 表?

【问题讨论】:

  • 从命令行:mysqldump -u yourlogin -p your_database your_tablename。输入密码,然后将显示创建表语句。如果您想从 phpmyadmin GUI 获取它,请运行查询:show create table your_tablename

标签: mysql sql recreate


【解决方案1】:

MySQL 支持SHOW CREATE TABLE 返回用于创建表的 SQL。

来自他们的文档:

mysql> SHOW CREATE TABLE t;
CREATE TABLE t (
  id INT(11) default NULL auto_increment,
  s char(60) default NULL,
  PRIMARY KEY (id)
) ENGINE=MyISAM

如果您只有与数据库的连接,而不是服务器上的 CLI,这将很有用。如果您有 CLI,请像 liamgriffiths 推荐的那样使用 mysqldump。

【讨论】:

  • 这不涉及复制行,我认为这是预期结果的一部分。
【解决方案2】:

mysqldump 可以做到-http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html

你可以这样使用它:

mysqldump [databasename] [tablename] > mysqltablesql.sql

【讨论】:

    【解决方案3】:

    如果您使用的是 phpMyAdmin,请选择一个表,然后单击“导出”选项卡。一种输出类型是 SQL。选择此项将生成一个 SQL 脚本来创建表并插入表中当前的所有数据。确保在转储数据选项下选择“结构和数据”

    【讨论】:

    • 谢谢,这对我来说是最好的答案。一个sql文件就是一个建库的指令列表,最上面是表结构的查询。
    【解决方案4】:

    mysqldump [OPTIONS] 数据库 [tables]>backup-file.sql

    如果您不提供任何表或使用 --databases 或 --all-databases,则整个数据库将被转储。

    您可以通过执行 mysqldump --help 获取您的 mysqldump 版本支持的选项列表。

    请注意,如果您在没有 --quick 或 --opt 的情况下运行 mysqldump,mysqldump 将在转储结果之前将整个结果集加载到内存中。如果您要转储大型数据库,这可能会成为问题。

    【讨论】:

      【解决方案5】:

      如果您有权访问 phpMyAdmin,则可以通过所需表格上的“导出”选项卡获取此代码。

      选择 SQL,然后确保导出“结构”(“创建表”代码)和“数据”(“插入”代码),并将导出类型设置为“插入”。

      【讨论】:

        【解决方案6】:

        我会选择@liamgriffiths 的mysqldump 提案,但您也可以尝试create table <new-table-name> like <old-table-name>,然后是insert into <new-table-name> select * from <old-table-name>

        【讨论】:

          猜你喜欢
          • 2013-06-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-10-16
          • 2020-08-07
          • 1970-01-01
          • 2012-02-11
          相关资源
          最近更新 更多