hive内外表是否可以重名 验证

先说结论 不能重名个

刚接触hive 看到 内外表这个 标志的时候第一反应是隔绝开的   ,所以有个疑问就是 内表外表是否可以重名

创建外表

create external table if not exists dept(
deptno int,
dname string,
loc int
)
row format delimited fields terminated by '\t';

查看信息  部分删除

hive> desc formatted dept ;
OK
 
Table Type:         	EXTERNAL_TABLE      	 

验证再有 if not exists 是否存在判读的过程中 是否可以覆盖原表  或者  创建一张内表

hive> create external table if not exists dept(
    > deptno int,
    > dname string,
    > loc int
    > )
    > row format delimited fields terminated by '\t';
OK
Time taken: 0.463 seconds
hive> show tables ;
OK
dept
Time taken: 0.04 seconds, Fetched: 1 row(s)
hive> desc formatted dept ;
OK
Table Type:         	EXTERNAL_TABLE  

 查看之后发现  dept 表只有一个  , 而且依旧是外表说明 既不会出现多个  也不会覆盖原有表类型

hive> create  table  dept(
    > deptno int,
    > dname string,
    > loc int
    > )
    > row format delimited fields terminated by '\t';
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. AlreadyExistsException(message:Table dept already exists)
hive> 

去除掉 if not exists  直接报表纯在的错误 

结论 hive内外表不可以重名 

(其实很简单  如果两个表名重复   在查询时候语句没有要求 内外表 查询需要加 特殊标识  )

名称重复  select 一定会有问题   反推就知道内外表名称不能重复

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值