使用insert into和insert overwrite插入数据的区别【Hive or Odps】

不管现实多么惨不忍睹,都要持之以恒地相信,这只是黎明前短暂的黑暗而已。不要惶恐眼前的难关迈不过去,不要担心此刻的付出没有回报,别再花时间等待天降好运。真诚做人,努力做事!你想要的,岁月都会给你。使用insert into和insert overwrite插入数据的区别【Hive or Odps】,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

1、创建一个测试表insert_test

#标识创建表insert_test,默认新增id列,并插入一条数据1
CREATE TABLE insert_test AS SELECT 1 AS id;

在这里插入图片描述

2、插入数据

使用insert into插入数据:

INSERT INTO insert_test SELECT 2 AS id; --insert into 可以重复插入数据

执行两次上述命令,发现会重复插入行:
在这里插入图片描述
使用insert orverwrite插入数据:

INSERT OVERWRITE TABLE insert_test SELECT 2 AS id;  --insert overwrite 会将表中的数据先清空,然后在插入

在这里插入图片描述

3、总结

insert into:

  • 会保留之前的数据,继续插入,并且不会去重。

insert overwrite:

  • 会将之前的数据清空,然后再插入。

4、扩展Like和As关键字的区别

在这里插入图片描述
使用关键字Like创建表:

CREATE TABLE insert_table_copy_like LIKE insert_test;

在这里插入图片描述
使用关键字As创建表:

CREATE TABLE insert_table_copy_as AS SELECT * FROM insert_test WHERE 1=1;

在这里插入图片描述

二者的用途和区别:

  • Like:用来创建的完整表结构和全部索引,但是不会复制源表数据。
  • As :用来创建相同表结构并复制源表数据,也可以选择字段,创建出来的table缺少源表的索引信息,只有表结构相同,没有索引。

补充:Oracle支持as,也是只有表结构没有索引,Oracle不支持like;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/189377.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!