设为首页收藏本站
查看: 79|回复: 0

[PHP] 在MySQL中操作克隆表的教程_MySQL-mysql教程

[复制链接]

论坛元老

Rank: 6Rank: 6

积分
34274
主题
17031
UID
1347
M币
67
贡献
17176

  • 发表于 2017-5-12 16:11:00 | 显示全部楼层 |阅读模式
    可能有一种情况,当需要一个完全相同的副本表CREATE TABLE ... SELECT不适合需要,因为副本必须包含相同的索引,默认值,依此类推。
    按下面的步骤,可以处理这种情况。
  • 使用SHOW CREATE TABLE得到一个CREATE TABLE语句中指定源表的结构,索引等。
  • 修改语句更改表名称的克隆表,并执行该语句。通过这种方式将有确切的克隆表。
  • 或者,如果需要进行表的内容复制,使用INSERT INTO ... SELECT语句也可以搞定。 实例:
    试试下面的例子来创建一个克隆表tutorials_tbl
    步骤 1:
    有关表获取完整的结构
       mysql> SHOW CREATE TABLE tutorials_tbl \G; *************************** 1. row *************************** Table: tutorials_tbl Create Table: CREATE TABLE `tutorials_tbl` ( `tutorial_id` int(11) NOT NULL auto_increment, `tutorial_title` varchar(100) NOT NULL default '', `tutorial_author` varchar(40) NOT NULL default '', `submission_date` date default NULL, PRIMARY KEY (`tutorial_id`), UNIQUE KEY `AUTHOR_INDEX` (`tutorial_author`) ) TYPE=InnoDB 1 row in set (0.00 sec) ERROR: No query specified  
    步骤 2:
    重命名此表,并创建另一个表
       mysql> CREATE TABLE `clone_tbl` ( -> `tutorial_id` int(11) NOT NULL auto_increment, -> `tutorial_title` varchar(100) NOT NULL default '', -> `tutorial_author` varchar(40) NOT NULL default '', -> `submission_date` date default NULL, -> PRIMARY KEY (`tutorial_id`), -> UNIQUE KEY `AUTHOR_INDEX` (`tutorial_author`) -> ) TYPE=InnoDB; Query OK, 0 rows affected (1.80 sec)  
    步骤 3:
    在执行步骤2的克隆数据库的表中。如果想从旧表中的数据复制,那么可以通过使用INSERT INTO... SELECT语句。
       mysql> INSERT INTO clone_tbl (tutorial_id, -> tutorial_title, -> tutorial_author, -> submission_date) -> SELECT tutorial_id,tutorial_title, -> tutorial_author,submission_date, -> FROM tutorials_tbl; Query OK, 3 rows affected (0.07 sec) Records: 3 Duplicates: 0 Warnings: 0  
    最后,将有确切的克隆表。
  • 回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    在我站开通SVIP可同时获得17个站点VIP资源 立即登录 立即注册
    快速回复 返回顶部 返回列表