mysql不支持这个语句,insert overwrite通常出现在hive等数据处理工具中,执行覆盖写入操作
但是mysql虽然不支持insert overwrite语句,但是mysql有提供类似的功能,因为insert overwrite无非就是存在某些数据的时候就覆盖它,然后写入新的,起到一个数据重复时更新的作用,所以mysql也有类似的功能
on duplicate key update语句
该语句作用为当插入的数据重复时所做操作,该语句有个限制,目标数据表必须有主键,且插入数据也必须有主键数据,否则要不报错要不就无效或者新增数据,因为它判断数据是否重复的依据是主键约束或主键的索引 INSERT INTO t(id,name,sex) VALUES (1,'帝骑王小明','男') on duplicate key update name='债皇-时王',sex='不清楚';
上面这条语句作用就是,在id为主键的表中插入一条数据,当id重复是将该数据的name和sex值改变为相应值
insert ignore语句
这个语句的使用要求和ON DUPLICATE KEY UPDATE一样,不过它不会有修改操作,它的作用是忽略重复时报错,而是以警告的形式略过该条数据的改动使用方法如下
insert ignore into t(id,name,sex) values (3,'大古','男');
语句执行时,如id为3的数据存在则添加无效