mysql中replace into(删除插入)/insert into on duplicate update(更新插入)/INSERT IGNORE INTO(插入或忽略)

准备工作

  1. 建表
CREATE TABLE IF NOT EXISTS `t_javastack`(
    `id` INT AUTO_INCREMENT,
    `title` VARCHAR(500) NOT NULL,
    `content` VARCHAR(100) NOT NULL,
    PRIMARY KEY ( `id` )
);
  1. 插入数据
insert into t_javastack(title, content) values
('标题1', '内容1'),
('标题5', '内容5');

添加title作为唯一键


ALTER TABLE `flyway`.`t_javastack`  ADD  UNIQUE INDEX `unique` (`title`);

开始正题

插入或替换

通过唯一键进行插入替换,如果唯一键存在,则删除此条记录在插入替换,不存在则插入

在这里插入图片描述
执行下面replace into 发现记录为id=4,tile=flyway的数据被删除替换成id=11,title=flyway;

REPLACE INTO t_javastack(id,title,content,note,TIME) VALUE(NULL,'flyway','中国加油','note',NOW());

在这里插入图片描述

插入或更新

INSERT INTO … ON DUPLICATE KEY UPDATE
存在则更新,不存在则插入

INSERT INTO t_javastack(id,title,content,note,TIME) VALUE(NULL,'flyway','中国加油_insert_into','note',NOW()) ON DUPLICATE KEY UPDATE title='flyway_update',TIME=NOW();

在这里插入图片描述新增
在这里插入图片描述

插入或忽略

插入一条新记录(INSERT),但如果记录已经存在,就啥事也不干直接忽略,此时,可以使用INSERT IGNORE INTO …语句
在这里插入图片描述key不存在执行,插入
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210630145923681.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzEzNzY3MA==,size_16,color_FFFFFF,t_70

指定数据快照或备份

单表备份语句 同一个库中

 CREATE TABLE back_table SELECT * FROM t_javastack;

在这里插入图片描述彩蛋:oracle中插入更新是merge into。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值