如何在PHPMyAdmin中获取能够重新创建SQL表的查询语句

26

我在MySQL服务器上有一张表,希望得到可以重新创建该表的SQL语句。

如何获取用于重新创建SQL表的查询语句?


2
从命令行执行:mysqldump -u yourlogin -p your_database your_tablename。输入密码,然后会显示创建表语句。如果你想通过phpmyadmin图形界面来获取,则运行查询:show create table your_tablename - Eric Leschinski
可能是如何在MySQL数据库中备份单个表?的重复问题。 - Brian Tompsett - 汤莱恩
6个回答

67
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。


这并不涉及复制行,我认为这是预期结果的一部分。 - wtf8_decode

16

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

谢谢,这是对我来说最好的答案。一个 SQL 文件只是构建数据库的指令列表,顶部是表结构查询。 - Purple Tentacle

2

mysqldump [OPTIONS] database [tables]>backup-file.sql

如果您没有指定表或使用 --databases 或 --all-databases 选项,则会备份整个数据库。

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

请注意,如果您在不使用 --quick 或 --opt 选项的情况下运行 mysqldump,则 mysqldump 在转储结果之前将整个结果集加载到内存中。如果您要备份大型数据库,则可能会出现问题。


2
如果您可以访问phpMyAdmin,您可以通过所需表上的“导出”选项卡获取此代码。
选择SQL,然后确保将“结构”(“CREATE table”代码)和“数据”(“INSERT”代码)与导出类型设置为“INSERT”一起导出。

0
我会选择 @liamgriffiths 的建议,使用 mysqldump,但你也可以尝试使用 create table <new-table-name> like <old-table-name>,然后再使用 insert into <new-table-name> select * from <old-table-name>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接