创建MySQL查询以从现有表创建表

时间:2010-09-03 09:34:42

标签: mysql

我在MySQL数据库中有一个庞大而复杂的表,如果出现任何问题,必须构建一个手动重建的查询。

有没有我可以获得MySQL或其他一些工具/脚本我可以用来自动创建一个会重新创建表结构的查询?

理想情况下,如果您建议使用工具/脚本,那么它将适用于Linux

9 个答案:

答案 0 :(得分:20)

SHOW CREATE TABLE `thetable`;

任何备份方法(如mysqldump)都应该为您提供保存结构和数据的选项。

答案 1 :(得分:10)

来自http://dev.mysql.com/doc/refman/5.0/en/create-table.html

根据另一个表的定义创建一个空表,包括原始表中定义的任何列属性和索引:

CREATE TABLE new_tbl LIKE orig_tbl;

答案 2 :(得分:6)

执行这些查询:

  

如果要复制具有主键,外键和表的结构   约束数据......

CREATE TABLE newtableName LIKE oldTableName; 
INSERT newtableName SELECT * FROM oldTableName;

答案 3 :(得分:4)

您可以使用mysqldump工具导出mysql表的结构和数据。

http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html

答案 4 :(得分:1)

CREATE TABLE new_table AS SELECT * FROM old_table WHERE 1 =0

答案 5 :(得分:0)

您可以将表的结构从phpmyadmin导出到sql文件...

答案 6 :(得分:0)

SHOW CREATE TABLE `table_name`;

答案 7 :(得分:0)

我绝对同意其他人的意见:
使用mysqldump你得到一个表的转储(选项--tables),让我们说dumpMyTable.sql
然后,如果要在新架构上加载此转储:

mysql -uuser_name -ppassword MyNewSchema < dumpMyTable.sql

如果要在同一模式中加载它,但在新表中,则必须编辑dumpMyTable.sql文件并手动更改表的名称。如果转储文件非常大,我建议使用“sed”命令

答案 8 :(得分:0)

您可以将SqlYog用于此目的。解决方案只需2次点击该工具即可。您可以使用DataBase菜单来实现此目的。您也可以只将架构或整个数据复制到不同的服务器。