准备工作
- 建表
CREATE TABLE IF NOT EXISTS `t_javastack`(
`id` INT AUTO_INCREMENT,
`title` VARCHAR(500) NOT NULL,
`content` VARCHAR(100) NOT NULL,
PRIMARY KEY ( `id` )
);
- 插入数据
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。