我在MySQL数据库中有一个庞大而复杂的表,如果出现任何问题,必须构建一个手动重建的查询。
有没有我可以获得MySQL或其他一些工具/脚本我可以用来自动创建一个会重新创建表结构的查询?
理想情况下,如果您建议使用工具/脚本,那么它将适用于Linux
答案 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表的结构和数据。
答案 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菜单来实现此目的。您也可以只将架构或整个数据复制到不同的服务器。