MySQL快速复制数据表与数据库的方法
发布:smiling 来源: PHP粉丝网 添加日期:2014-10-02 21:29:46 浏览: 评论:0
复制数据表的方法有很多最,最简单的就直接把mysql data目录下的与你数据库相同的一起复制,这样数据表与库都复制过来了.
以下范例都是把 old_table 复制到 new_table,先讲讲结论,最推荐的作法是下述两行,代码如下:
- CREATE TABLE new_table LIKE old_table;
- INSERT new_table SELECT * FROM old_table;
以下来讲讲几种作法和优缺点,MyISAM 的作法若比较暴力点的话,可以用下述方式做,代码如下:
- CREATE TABLE new_table;
- /etc/init.d/mysql stop
- cd /var/lib/mysql/database_name
- cp old_table.MYI new_table.MYI
- cp old_table.MYD new_table.MYD
- /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 一定是一模一样的),代码如下:
- CREATE TABLE new_table LIKE old_table;
- 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, --phpfensi.com
- `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 进去.
Tags: MySQL复制数据表 MySQL数据库
相关文章
- ·MySQL数据库中的安全解决方案(2013-11-14)
- ·php入门之php操作mysql数据库实例代码(2014-03-26)
- ·MySQLdb操作mysql数据库的类(2014-09-22)
- ·mysql数据库分区功能及实例详解(2014-09-23)
- ·MySql数据库双主(双向)同步实现数据库双主热备(2014-09-23)
- ·深入分析mysql数据库表分区(2014-09-23)
- ·mysql安全修改mysql数据库名几种方法(2014-09-24)
- ·mysql数据库增量备份与恢复方法(2014-09-27)
- ·mysqldump备份与还原mysql数据库(2014-09-28)
- ·linux mysql 数据库自动备份的设置方法(2014-09-28)
- ·一个简单的php mysql数据库操作类程序(2014-09-29)
- ·MySQL数据库连接代码实例(2014-09-29)
- ·mysql 查看MySQL服务器上的所有MySQL数据库(2014-10-02)
- ·Linux MySQL数据库备份与恢复(2014-10-02)
- ·MySQL数据库需安全配置与注意事项(2014-10-03)
- ·Mysql数据库错误代码中文说明详解(2014-10-03)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)