MySQL复制表

MySQL复制表(三种)

#1、复制表数据和列名至一个新表,(不包含索引),新表必须不存在
DROP TABLE  IF EXISTS same2;
CREATE TABLE same2 AS (SELECT * FROM same);
#2、仅复制表列至新表,不包含数据和索引,新表必须不存在
CREATE TABLE same4 AS SELECT * FROM  same WHERE 1=2;

##################################################################
#步骤3加4才能完整地备份一个表,包括表列、数据、索引
#3、仅复制表结构,新表必须不存在
DROP TABLE  IF EXISTS same3;
CREATE TABLE same3 LIKE same;
#4、表必须已存在,仅复制表数据,可以选择复制某几列
INSERT INTO same3 SELECT * FROM same;
INSERT INTO same3(n) SELECT n FROM same;


#创建一个新表,id1为 middleint ,name为long
SELECT  * INTO same5  FROM same
DROP TABLE same5;
CREATE TABLE same5(
id1 MIDDLEINT PRIMARY KEY,
NAME LONG 
);
#将same表中的id=1的数据插入same5
INSERT INTO same5(id1,NAME) SELECT id,n 
FROM same WHERE id =1;

总结

create 开头的是创建,新表必须不存在

create table as 只能存视图数据,没有索引,跟视图规则一样,select后限制列属性,where限制满足条件的行数据

create table like 只复制表结构,包括列名,索引

insert开头的是插入,新表必须存在

insert into newt(l1,l2) select l1,l2 from oldt where..

两个表的列属性必须对应且数量相等, newt()限制插入新表的属性,select 限制旧表的属性,where限制行数据;

注意:

新表存在主键时,如果主键不是自增主键,则必须插入主键;

前后列名、属性类型可以不一样,相对应即可;(小心精度丢失)

不含索引,拷贝数据,create as,同视图

下面这个语句会拷贝数据到新表中。

注意:这个语句其实只是把select语句的结果建一个表,所以新表不会有主键,索引。

create` `table` `table_name_new ``as` `(``select` `* ``from` `table_name_old);

只复制表属性(列名),不含索引,create as <>

create` `table` `table_name_new ``as` `select` `* ``from` `table_name_old ``where` `1=2;

是不会复制主键类型,索引的

只复制表结构,含索引,create like

create` `table` `table_name_new ``like` `table_name_old;

是把旧表的所有字段类型都复制到新表,含索引

只复制表数据,insert into select,新表必须存在

如果两个表结构一样

insert` `into` `table_name_new ``select` `* ``from` `table_name_old;

如果两个表结构不一样

insert` `into` `table_name_new(column1,column2...) ``select` `column1,column2... ``from` `table_name_old;

----!!下面语句亲测无用,mysql报语法错误!!

注意:很多文章说可以通过如下语句进行数据复制,table_name_new表可以不存在,会在执行的过程中自动创建。其实该SELECT ... INTO形式是使查询结果存储在变量或将其写入文件,即table_name_new是一个变量或者文件。

```MySQL
selectcolumn1,column2,.... into` `table_name_newfromtable_name_old;

种下数据库 文章被收录于专栏

MySQL相关的学习笔记,让我们一起来种下MySQL这棵参天大树吧!

全部评论

相关推荐

2025-12-19 19:02
西安交通大学 Java
程序员牛肉:双九,而且还是西交这种比较好的985九没必要再投日常了。你投中小厂,人家会觉得你学历这么顶还面试肯定是海投的,过了你也不去。所以不约你了。 直接准备暑期实习就好,现在你可以面试。但是目的不再是去日常实习了,而是熟悉面试节奏。 后续把精力放到八股,算法和AI知识上。抽空把自己这两个项目换了,怎么选项目可以看看我主页写的文章。 你学历不错的,不要焦虑
那些拿到大厂offer的...
点赞 评论 收藏
分享
02-01 12:05
复旦大学 Java
腾讯的提前批大概率应该是没有笔试的,但是这个时候有相当部分的同学简历估计都没有准备好,没准备好的同学也不用急,大部分都是3月之后开,这个时候开的绝大多数都是神仙打架,问的东西也比较难,打算投递的同学也多看下计算机网络和操作系统,腾讯对这部分的知识问的比较多。另外多刷下牛客的热门题库,刷题注意刷ACM模式,和牛客的周赛题,腾讯有的部门会从这里面出原题。我是@程序员花海关注我,带你了解更多校招资讯!
程序员花海:还没有来得及准备的同学可以看下学习路线:https://www.nowcoder.com/discuss/824693499982315520?sourceSSR=users算法题:https://www.nowcoder.com/feed/main/detail/20e7a999fa04485b88340a274411ca0d?sourceSSR=users八股文:https://www.nowcoder.com/discuss/833102362771251200?sourceSSR=users简历书写方式:https://www.nowcoder.com/discuss/839907820706205696?sourceSSR=users都是以前在牛客发的文章~
软开人,秋招你打算投哪些...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务