Mysql 教程
1. MySQL 教程 2. MySQL 安装 3. MySQL 管理 4. MySQL PHP 语法 5. MySQL 连接 6. MySQL 创建数据库 7. MySQL 删除数据库 8. MySQL 选择数据库 9. MySQL 数据类型 10. MySQL 创建数据表 11. MySQL 删除数据表 12. MySQL 插入数据 13. MySQL 查询数据 14. MySQL WHERE 子句 15. MySQL UPDATE 更新 16. MySQL DELETE 语句 17. MySQL LIKE 子句 18. MySQL 排序 19. MySQL 连接的使用 20. MySQL NULL 值处理 21. MySQL 正则表达式 22. MySQL 事务 23. MySQL ALTER命令 24. MySQL 索引 25. MySQL 临时表 26. MySQL 复制表 27. MySQL 元数据 28. MySQL 序列使用 29. MySQL 处理重复数据 30. MySQL 及 SQL 注入 31. MySQL 导出数据 32. MySQL 导入数据 33. MySQL 函数 34. MySQL 运算符

MySQL 复制表

MySQL 复制表

如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等。 如果仅仅使用CREATE TABLE ... SELECT 命令,是无法实现的。

本章节将为大家介绍如何完整的复制MySQL数据表,步骤如下:

  • 使用 SHOW CREATE TABLE 命令获取创建数据表(CREATE TABLE) 语句,该语句包含了原数据表的结构,索引等。
  • 复制以下命令显示的SQL语句,修改数据表名,并执行SQL语句,通过以上命令 将完全的复制数据表结构。
  • 如果你想复制表的内容,你就可以使用 INSERT INTO ... SELECT 语句来实现。

实例

尝试以下实例来复制表 _tbl 。

步骤一:

获取数据表的完整结构。


mysql> SHOW CREATE TABLE _tbl \G;

*************************** 1. row ***************************

       Table: _tbl

Create Table: CREATE TABLE `_tbl` (

  `_id` int(11) NOT NULL auto_increment,

  `_title` varchar(100) NOT NULL default '',

  `_author` varchar(40) NOT NULL default '',

  `submission_date` date default NULL,

  PRIMARY KEY  (`_id`),

  UNIQUE KEY `AUTHOR_INDEX` (`_author`)

) ENGINE=InnoDB 

1 row in set (0.00 sec)



ERROR:

No query specified

步骤二:

修改SQL语句的数据表名,并执行SQL语句。


mysql> CREATE TABLE `clone_tbl` (

  -> `_id` int(11) NOT NULL auto_increment,

  -> `_title` varchar(100) NOT NULL default '',

  -> `_author` varchar(40) NOT NULL default '',

  -> `submission_date` date default NULL,

  -> PRIMARY KEY  (`_id`),

  -> UNIQUE KEY `AUTHOR_INDEX` (`_author`)

-> ) ENGINE=InnoDB;

Query OK, 0 rows affected (1.80 sec)

步骤三:

执行完第二步骤后,你将在数据库中创建新的克隆表 clone_tbl。 如果你想拷贝数据表的数据你可以使用 INSERT INTO... SELECT 语句来实现。


mysql> INSERT INTO clone_tbl (_id,

    ->                        _title,

    ->                        _author,

    ->                        submission_date)

    -> SELECT _id,_title,

    ->        _author,submission_date

    -> FROM _tbl;

Query OK, 3 rows affected (0.07 sec)

Records: 3  Duplicates: 0  Warnings: 0

执行以上步骤后,你将完整的复制表,包括表结构及表数据。