Mysql支持insert overwrite吗

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的数据存在则添加无效

replace into语句

这个语句使用要求同上,它的作用是当重复时,先删除原有数据,随后执行添加操作

猜你喜欢

转载自blog.csdn.net/dudadudadd/article/details/113248892