mysql克隆表(复制表结构与表数据)
2019/10/10/17:36:15 阅读:2121 来源:谷歌SEO算法 标签:
自学SEO
mysql克隆表其实就是对数据表的一个复制工作了,我们可以选择性的复制表数据或表结构或整表复制了,下面我来介绍一下相关sql语句.
可能有一种情况,当需要一个完全相同的副本表CREATE TABLE ... SELECT不适合需要,因为副本必须包含相同的索引,默认值,依此类推.
按下面的步骤,可以处理这种情况.
使用SHOW CREATE TABLE得到一个CREATE TABLE语句中指定源表的结构,索引等,修改语句更改表名称的克隆表,并执行该语句,通过这种方式将有确切的克隆表,或者,如果需要进行表的内容复制,使用INSERT INTO ... SELECT语句也可以搞定.
实例,试试下面的例子来创建一个克隆表tutorials_tbl
步骤1:有关表获取完整的结构,代码如下:
- mysql>SHOWCREATETABLEtutorials_tblG;
- ***************************1.row***************************
- Table:tutorials_tbl
- CreateTable:CREATETABLE`tutorials_tbl`(
- `tutorial_id`int(11)NOTNULLauto_increment,
- `tutorial_title`varchar(100)NOTNULLdefault'',
- `tutorial_author`varchar(40)NOTNULLdefault'',
- `submission_date`datedefaultNULL,
- PRIMARYKEY(`tutorial_id`),
- UNIQUEKEY`AUTHOR_INDEX`(`tutorial_author`)
- )TYPE=InnoDB
- 1rowinset(0.00sec)
- ERROR:
- Noqueryspecified
步骤2:重命名此表,并创建另一个表,代码如下:
- mysql>CREATETABLE`clone_tbl`(
- ->`tutorial_id`int(11)NOTNULLauto_increment,
- ->`tutorial_title`varchar(100)NOTNULLdefault'',
- ->`tutorial_author`varchar(40)NOTNULLdefault'',
- ->`submission_date`datedefaultNULL,
- ->PRIMARYKEY(`tutorial_id`),
- ->UNIQUEKEY`AUTHOR_INDEX`(`tutorial_author`)
- ->)TYPE=InnoDB;//phpfensi.com
- QueryOK,0rowsaffected(1.80sec)
步骤3:在执行步骤2的克隆数据库的表中,如果想从旧表中的数据复制,那么可以通过使用INSERT INTO... SELECT语句,代码如下:
- mysql>INSERTINTOclone_tbl(tutorial_id,
- ->tutorial_title,
- ->tutorial_author,
- ->submission_date)
- ->SELECTtutorial_id,tutorial_title,
- ->tutorial_author,submission_date,
- ->FROMtutorials_tbl;//phpfensi.com
- QueryOK,3rowsaffected(0.07sec)
- Records:3Duplicates:0Warnings:0
最后,将有确切的克隆表.
热门评论