教程集 www.jiaochengji.com
教程集 >  数据库  >  mysql  >  正文 MySQL快速复制数据表与数据库的方法

MySQL快速复制数据表与数据库的方法

发布时间:2023-05-02   编辑:jiaochengji.com
教程集为您提供MySQL快速复制数据表与数据库的方法等资源,欢迎您收藏本站,我们将为您提供最新的MySQL快速复制数据表与数据库的方法资源
复制数据表的方法有很多最,最简单的就直接把mysql data目录下的与你数据库相同的一起复制,这样数据表与库都复制过来了。

以下范例都是把 old_table 复制到 new_table.

先讲讲结论, 最推荐的作法是下述两行:

 代码如下 复制代码
■CREATE TABLE new_table LIKE old_table;
■INSERT new_table SELECT * FROM old_table;

以下来讲讲几种作法 和 优缺点.

MyISAM 的作法若比较暴力点的话, 可以用下述方式做:

 代码如下 复制代码

1.CREATE TABLE new_table;
2./etc/init.d/mysql stop
3.cd /var/lib/mysql/database_name
4.cp old_table.MYI new_table.MYI
5.cp old_table.MYD new_table.MYD
6./etc/init.d/mysql start

这样子也可以复制完成, 但是这么暴力有可能会有些小问题要解决.

下述作法会比较建议(参考自此篇: sql - fastest way to copy a table in mysql), 不过有下述两种作法, 有些不同, 先写出作法, 再来解释差异.

?: 以下 old_table 若跨 DB, 都可以写成 old_db.old_table 来指定.

第一种作法: 一行语法复制 Table Data, 不过需要手动增加 Primay、index key 等.

 代码如下 复制代码
1.CREATE TABLE new_table SELECT * FROM old_table; # 这个作法 Primay、index key 都不会复制, 需要手动加
2.ALTER TABLE new_table ADD PRIMARY KEY (id);

第二种作法: 先复制 Table schema, 再来 INSERT Data. (建议使用此作法, Schema 一定是一模一样的)

 代码如下 复制代码
1.CREATE TABLE new_table LIKE old_table;
2.INSERT new_table SELECT * FROM old_table;

先来讲讲第一种作法: (此作法 Schema 可能不同, Data 是会正确复制过来的)

 代码如下 复制代码

■CREATE TABLE new_table SELECT * FROM old_table;

■此行会把 Table 和 Data 都复制到 new_table, 但是 Table 使用的 Engine、语系编码 会跟 MySQL 预设的一样, 而不是 Copy old_table 的. 结果可能就会是下述的状况: (要看你的系统设定而定, old_table 和 new_table 的 schema 可能会不同, 但是 Data 是一致的)

 代码如下 复制代码

■CREATE TABLE `old_table` (
`no` int(8) NOT NULL,
`cname` varchar(255) DEFAULT NULL,
PRIMARY KEY (`no`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

■CREATE TABLE `new_table` (
`no` int(8) NOT NULL,
`cname` varchar(255) CHARACTER SET utf8 DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

第二种作法: (此作法可以将 Schema 和 Data 都是一模一样的复制过来)

■CREATE TABLE new_table LIKE old_table;
■此行会完整复制 Table Schema, 先复制完 Table Schema 后, 再来把资料一笔一笔 INSERT 进去.

您可能感兴趣的文章:
MySQL导入导出命令的例子
mysql导入与导出数据库的例子
使用mysql二进制日志恢复mysql数据库的方法
python使用哪种数据库
MySQL临时表的简单用法详解
快速修改Mysql数据库名的五种方法
mysql批量插入(insert)与批量更新(update)的例子
mysql 查看表结构的方法参考
php导入大量数据到mysql(示例)
mysql复制一个新的数据库或表的方法

[关闭]
~ ~