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
    A+
发布日期:2021年07月31日 20:03:49  所属分类:MySQL
最后更新时间:2021-07-31 20:04:34
付杰
  • ¥ 298.0元
  • 市场价:498.0元
  • ¥ 0.0元
  • 市场价:99.0元
  • ¥ 199.0元
  • 市场价:499.0元
  • ¥ 6.8元
  • 市场价:8.8元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: