Mysql的表复制

Mysql 表复制 INSERT INTO SELECT * INTO

1、背景

玩数据的都会涉及数据库,虽然Navicate带来了许多便利,但是本人还是喜欢使用sql,本篇介绍一下关于表复制的相关sql。


2、正文

表复制分为表结构复制、表数据复制与整表(表结构+表数据)复制。

表结构

1
2
3
4
5
6
7
8
9
# 创建表结构
CREATE TABLE 新表 LIKE 旧表;

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

SELECT * INTO2 FROM1 WHERE 1=2;

# 查看创建表的sql
SHOW CREATE TABLE 旧表;

表数据

1
2
3
SELECT * INTO 新表 FROM 旧表;

INSERT INTO 新表 SELECT * FROM 旧表;

表结构+表数据

1
CREATE TABLE 新表 SELECT * FROM 旧表;

弊端:
新表中没有旧表的primary key、auto_increment等属性,需要通过alter进行添加。

3、建议

如果是想复制出一个一模一样的表,建议使用:

1
2
3
4
# 查看创建表的sql
SHOW CREATE TABLE 旧表;

INSERT INTO 新表 SELECT * FROM 旧表;

Mysql的表复制
http://pygo2.top/articles/34145/
作者
mingliang.gao
发布于
2020年4月15日
许可协议