(8)insert
2019-07-13 本文已影响0人
顽皮的石头7788121
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;
即将原有数据集和新增数据集进行结合, 然后重写表.