(8)insert

insert overwrite 会覆盖已经存在的数据,假如原始表使用overwrite 上述的数据,先现将原始表的数据remove,再插入新数据。
insert into 只是简单的插入,不考虑原始表的数据,直接追加到表中。
INSERT OVERWRITE TABLE在插入数据时,是按照后面的SELECT语句中的字段顺序插入的. 也就说, 当id 和value 的位置互换, 那么value将被写入id, 同id被写入value.
如果想使用insert overwrite实现insert into功能。需要通过union all来实现。
例如

INSERT OVERWRITE TABLE tableA1 
SELECT id, value FROM (
SELECT id, value FROM tableA1 
UNION ALL 
SELECT 4 AS id, 5 AS value FROM tableA1 limit 1
) u;

即将原有数据集和新增数据集进行结合, 然后重写表.

你可能感兴趣的:((8)insert)