insert into以追加的方式向 hive 表尾部追加数据行, 如果主键重复, 则ERROR。语法格式如下:
insert into 库名.表名 values (值 1, 值2, 值3)
insert into 库名.表名(列名1, 列名2, 列名3) values (值 1, 值2, 值3)
insert overwrite 则是先删除 hive 表的数据,再执行写入操作,其实是整个直接重写数据。语法格式如下:
INSERT OVERWRITE TABLE 库名.表名 VALUES(值1, 值2, 值3)
INSERT OVERWRITE TABLE 库名.表名 PARTITION (分区列) SELECT FROM
insert ignore into 会根据主键判断插入数据是否重复,如果重复,将忽略这新插入的数据, 不会返回错误, 但会返回警告
INSERT IGNORE INTO 库名.表名 VALUES(值1, 值2, 值3 )
当primary/unique 重复时,则执行update语句。如果update后面为恒true, 则与insert ignore into的作用相同。update后面一般跟着的是当遇到主键重复时的更新规则。
INSERT INTO 库名.表名 VALUES(值1, 值2, 值3) ON DUPLICATE KEY UPDATE ID =ID
例如:
INSERT INTO testtable VALUES(1, "hanhan") ON DUPLICATE KEY UPDATE name = "wangzijian"
当数据库中存在主键相同的记录时,则对此条数据做更新(还是先删除掉在插入新纪录,要确认一下)
REPLACE INTO TABLE 库名.表名 VALUES(值1, 值2, 值3)
原文:https://www.cnblogs.com/Sinkinghost/p/12638496.html