当前位置: 首页 > news >正文

insert into select用法

文章目录

  • 一、insert into select
  • 二、insert into select插入失败

本篇文章主要讲解insert into select 的用法,以及insert into select的坑或者注意事项。本篇文章中的sql基于mysql8.0进行讲解

一、insert into select

该语法常用于从另一张表查询数据插入到某表中。如备份表的时候,将表中的数据迁移到备份表中。

以下测试insert into select用于备份表

create table if not exists user
(id int not null primary key,sex char(3) null,NAME char(20) null
);
INSERT INTO user VALUES 
(1,'nan','陈一'),
(2,'nv','珠二'),
(3,'nv','张三'),
(4,'nan','李四'),
(5,'nv','王五'),
(6,'nan','赵六');

在这里插入图片描述
备份表sql

-- 创建bak备份表
create table user_bak_20230731 like user;
-- 将user表的数据插入到备份表
insert into user_bak_20230731 select * from user;

备份表数据如下,可以看到与user原表内容一致。
在这里插入图片描述

注意:

  1. 若insert into select一次性插入数据量过多,建议分批插入,避免io异常或缓存不足。

二、insert into select插入失败

失败场景: hive数据库中,针对分区表直接执行insert into select时报错。(其他类型数据库针对分区表直接执行insert into select没发现这个问题,mysql数据库亲测是ok的
错误日志:

FAILED: SemanticException 1:23 Need to specify partition columns because the destination table is partitioned. Error encountered near token 'user_tmp'

解决方法
需要在插入的数据中指定分区字段的数值是多少。

比如:
建表语句

create table test1 (
starttime string,
endtime string,
title string
)
PARTITIONED BY (username string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '| '
STORED AS TEXTFILE;-- 创建另一张表
create table test2 like test1;

插入语句:

insert into table test2 PARTITION(username='admin') select starttime, endtime, title from test1 where username = 'admin';
http://www.lryc.cn/news/104451.html

相关文章:

  • 图像识别技术:计算机视觉的进化与应用展望
  • 【免费送书】重新定义Python学习!
  • Qt 4. 发布exe
  • 消息队列的使用场景以及优缺点
  • 掌握Python的X篇_17_循环语句(while;for var in ;range)
  • IDEA maven 报错 malformed \uxxx encoding
  • Django实现音乐网站 ⑵
  • Vue 基础语法(二)
  • kafka raft协议
  • 平板光波导中导模的(注意不是泄露模)传播常数β的matlab计算(验证了是对的)
  • JVM面试题--JVM组成
  • 【Golang 接口自动化05】使用yml管理自动化用例
  • 【【STM32学习-3】】
  • 代码随想录第四十八天|198、213、337.打家劫舍
  • js笔记总结
  • 第四章:Spring上
  • 【时频分析,非线性中频】非线性STFT在瞬时频率估计中的应用(Matlab代码实现)
  • MTK平台关机流程和原因(二)
  • 【Python】pyqt6入门到入土系列,非常详细...
  • TCP socket编程
  • HTTP——一、了解Web及网络基础
  • [论文笔记] chatgpt系列 2.6 DeepSpeed-chat 数据集
  • 探究SAM和眼球追踪技术在自动医学图像分割的应用(2023+GazeSAM: What You See is What You Segment)
  • excle中的条件求和SUMIF
  • python-网络爬虫.Request
  • 时序预测 | MATLAB实现GRNN广义回归神经网络时间序列预测(多指标,多图)
  • 如何看待低级爬虫与高级爬虫?
  • 3.分支与循环
  • 面试之多线程案例(四)
  • 抄写Linux源码(Day1:获取并运行 Linux0.11)