我在MySQL数据库中有一个非常大而且复杂的表格,如果需要手动构建查询来重新创建表格,那将是一件非常麻烦的事情。
是否有一种方法可以让MySQL或其他工具/脚本自动生成一个可以重新创建该表格结构的查询?
最好是针对Linux系统提供一个工具/脚本。
我在MySQL数据库中有一个非常大而且复杂的表格,如果需要手动构建查询来重新创建表格,那将是一件非常麻烦的事情。
是否有一种方法可以让MySQL或其他工具/脚本自动生成一个可以重新创建该表格结构的查询?
最好是针对Linux系统提供一个工具/脚本。
SHOW CREATE TABLE `thetable`;
此外,任何备份方法,如mysqldump
,都应该给您保存结构和数据的选项。
从http://dev.mysql.com/doc/refman/5.0/en/create-table.html获取:
要基于另一个表的定义创建一个空表,包括在原始表中定义的列属性和索引:
CREATE TABLE new_tbl LIKE orig_tbl;
执行以下查询:
如果您想复制具有主键、外键和约束条件及数据的表结构...
CREATE TABLE newtableName LIKE oldTableName;
INSERT newtableName SELECT * FROM oldTableName;
创建一个新表new_table,该表的结构与old_table相同,但没有数据。可以使用 SELECT * FROM old_table WHERE 1 =0语句来完成这个任务。
SHOW CREATE TABLE `table_name`;
你可以从phpmyadmin导出表的结构到一个sql文件中...
我完全同意其他人的观点:
使用mysqldump命令可以导出表格(选项--tables),比如说dumpMyTable.sql
然后如果你想要在新的模式下加载这个导出文件:
mysql -uuser_name -ppassword MyNewSchema < dumpMyTable.sql
如果您想在同一模式中加载它但是要创建一个新表,那么您需要编辑dumpMyTable.sql文件并手动更改表的名称。如果转储文件非常大,则建议使用"sed"命令。