创建MySQL查询以从现有表创建表
我在MySQL数据库中有一个相当大且复杂的表,如果出现任何问题,必须手动为其构建查询以重新创建,这将是一件痛苦的事情 是否有什么方法可以获取MySQL或其他工具/脚本,以获得自动生成的查询,从而重新创建表的结构创建MySQL查询以从现有表创建表,mysql,Mysql,我在MySQL数据库中有一个相当大且复杂的表,如果出现任何问题,必须手动为其构建查询以重新创建,这将是一件痛苦的事情 是否有什么方法可以获取MySQL或其他工具/脚本,以获得自动生成的查询,从而重新创建表的结构 理想情况下,如果您建议使用一个工具/脚本,它将用于Linux,您可以将表的结构从phpmyadmin导出到sql文件…您可以使用mysqldump工具导出mysql表的结构和数据 此外,任何备份方法,如mysqldump都应该为您提供保存结构和数据的选项。我完全同意其他人的看法: SH
理想情况下,如果您建议使用一个工具/脚本,它将用于Linux,您可以将表的结构从phpmyadmin导出到sql文件…您可以使用mysqldump工具导出mysql表的结构和数据
此外,任何备份方法,如
mysqldump
都应该为您提供保存结构和数据的选项。我完全同意其他人的看法:SHOW CREATE TABLE `table_name`;
使用mysqldump,您可以得到表的转储(选项--tables),比如dumpMyTable.sql然后,如果要在新架构上加载此转储:
mysql -uuser_name -ppassword MyNewSchema < dumpMyTable.sql
mysql-uuser\u name-ppassword MyNewSchema
如果要将其加载到同一架构中,但加载到新表中,则必须编辑dumpMyTable.sql文件并手动更改表的名称。如果转储文件非常大,我建议使用“sed”命令您可以为此使用SQLYG。这个解决方案离这个工具只有2次点击。为此,您可以使用“数据库”菜单。您还可以仅复制架构或整个数据,甚至将两者都复制到不同的服务器。from 要基于另一个表的定义(包括原始表中定义的任何列属性和索引)创建空表,请执行以下操作:
CREATE TABLE new_tbl LIKE orig_tbl;
从1=0的旧\u表中选择*创建新表\u表执行以下查询:
如果要复制主键、外键和
数据约束
mysqldump-u-p--无数据--tables>table.ddlwow就这么简单,要么我的谷歌技能不足,要么我的眼睛不工作。在考虑阅读手册的可能性之前,不要抱怨你的谷歌技能创建具有相同结构的新表,但不会将主键复制到新表。
CREATE TABLE new_tbl LIKE orig_tbl;
CREATE TABLE newtableName LIKE oldTableName;
INSERT newtableName SELECT * FROM oldTableName;