用MySQL反向生成数据表结构和数据 简单快捷的数据迁移和备份方法(mysql反向生成)

数据的迁移和备份都是Web程序开发的常用功能,特别是数据表结构的备份,承担着分配数据量和实现数据恢复的重任。其实MySQL也提供一种简单快捷的数据迁移和备份方法,即反向生成数据表结构和数据。

MySQL反向生成数据表结构和数据是通过show create table table_name;和select * from table_name;两种语句,配合完整的字段类型、索引、触发器信息反向生成的。在C#、Java、PHP等开发语言中,都是如下实现:

mysql> show create table table_name;

CREATE Table `table_name` (

`id` int(11) NOT NULL auto_increment,

`name` varchar(50) NOT NULL default ”,

`age` tinyint(4) NOT NULL default ‘0’,

PRIMARY KEY (`id`)

) TYPE=MyISAM;

mysql> select * from table_name;

+—-+——-+——+

| id | name | age |

+—-+——-+——+

| 1 | ‘qing’ | 18 |

| 2 | ‘hehe’ | 26 |

+—-+——-+——+

上面的SQL语句可以用来反向构建数据表结构和数据,也可以作为数据的备份和迁移,例如:

//反向构建数据表结构和数据

String sqlCreateStr=””;

String sqlDataStr=””;

while (reader.Read())

{

sqlCreateStr=”CREATE Table `table_name` (“;

sqlCreateStr+= “`id` int(11) NOT NULL auto_increment, “;

sqlCreateStr+= “`name` varchar(50) NOT NULL default ”, “;

sqlCreateStr+= “`age` tinyint(4) NOT NULL default ‘0’, “;

sqlCreateStr+= “PRIMARY KEY (`id`)”;

sqlCreateStr+=”) TYPE=MyISAM;”;

sqlDataStr=”Insert into table_name(name, age) value(‘”+reader.GetString(1)+”‘,'”+reader.GetInt32(2)+”‘);\n”;

}

//将数据恢复到新的数据库

con.Open();

SQL Transaction trans=C con.BeginTransaction(); //开始事务

SQLCommand.ExecuteNonQuery(sqlCreateStr); //创建表结构

SQLCommand.ExecuteNonQuery(sqlDataStr); //插入数据

trans.Commit(); //事务提交

con.Close();

以上就是MySQL反向生成数据表结构和数据的实现方法,是一种简单快捷的数据迁移和备份方法,特别适用于数据表大的时候,节省时间和工作量。


数据运维技术 » 用MySQL反向生成数据表结构和数据 简单快捷的数据迁移和备份方法(mysql反向生成)