mysql复制表结构和数据,主要有以下3种情况:
1、只复制表结构到新表
2、复制表结构和数据到新表
3、将一张表的数据复制插入到另一张已有表中
一、只复制表结构到新表
现在有一张名为【grade】的数据表,表结构如下:
需求1:只复制原始表【grade】的表结构到新表【grade1】中
实现方法1:
CREATE TABLE 新表 LIKE 原始表
实例:CREATE TABLE grade1 LIKE grade
实现方法2:
CREATE TABLE 新表 SELECT * from 原始表 WHERE 1=2
实例:CREATE TABLE grade1 SELECT * FROM grade WHERE 1=2
注:where条件过滤,(1=2)条件为假,表示什么都不选择;(1=1)条件为真,表示全都选择,常用于程序中动态拼接sql语句。
以上2种方法,最后都可以实现,将原始表【grade】的表结构复制到新表【grade1】,结果如下:
二、复制表结构和数据到新表
原始表【grade】数据如下:
需求:将原始表【grade】的表结构和数据复制到新表【grade1】中
实现方法:
CREATE TABLE 新表 SELECT * from 原始表
实例:CREATE TABLE grade1 SELECT * FROM grade
注:select查询语句后面也可以跟条件,如(where 1=1)表示全部数据,(limit 3)表示复制3条数据等。
结果:
三、将一张表的数据复制到另一张已有表中
需求:将【grade】表的数据复制插入到表【grade3】中(两个表结构相同)。
实现方法:
INSERT INTO 已有表 SELECT * FROM 原始表
实例:INSERT INTO grade3 SELECT * FROM grade
注:select查询语句后面也可以跟条件,限制条数等。如果两个表结构不同,也可以只复制相应相同的字段,语法:
INSERT INTO grade3(字段1,…)SELECT * FROM grade(字段1,…)
结果:
—end—