MySQL复制表结构、表数据 方法

今天用 phpMyAdmin 需要创建很多类似以前创建过的表,既然这样,我就想着可以直接用MySQL复制表结构或表数据

具体如下:

一、复制表结构及数据到新表(不包含主键、索引、分区等)

具体的SQL语句如下:

CREATE TABLE 新表 SELECT * FROM 旧表

CREATE TABLE 新表 AS SELECT * FROM 旧表

优缺点:
这种方法将旧表基本结构和数据复制到新表。
不过这种方法的一个最不好的地方就是新表中没有了旧表的主键、索引、Extra(auto_increment,字符集编码及排序)、注释、分区等属性 以及触发器、外键等。

二、只复制表结构到新表

具体的SQL语句如下:

CREATE TABLE 新表 LIKE 旧表


–只是以第一种方式去除掉数据

CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2

优缺点:
这种方式的复制可以复制旧表的主键、索引、Extra(auto_increment,字符集编码及排序)、注释、分区等属性。但是不包含触发器、外键等。
还有一种方法:

show create table 旧表;

这样会将旧表的创建命令列出。我们只需要将该命令拷贝出来,更改table的名字,就可以建立一个完全一样的表

三、复制旧表的数据到新表

具体的SQL语句如下:

INSERT INTO 新表 SELECT * FROM 旧表

INSERT INTO 新表(字段1,字段2,.......) SELECT 字段1,字段2,...... FROM 旧表

注意:上面两条语句的前提是新表已经存在。

四、复制表结构及数据到新表(包含主键、索引、分区等)

结合上述第二、第三,具体的SQL语句如下:

1、先

CREATE TABLE 新表 LIKE 旧表

2、然后再

INSERT INTO 新表 SELECT * FROM 旧表

五、可以将表1结构复制到表2(mysql不支持)

SELECT * INTO 表2 FROM 表1 WHERE 1=2

六、可以将表1内容全部复制到表2(mysql不支持)

SELECT * INTO 表2 FROM 表1

给TA打赏
共{{data.count}}人
人已打赏
点滴技术

scp命令详解

2021-7-30 21:53:41

点滴技术

利用 Linux 查找重复文件

2021-10-27 22:08:42

    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索