INSERT IGNORE 与INSERT INTO与 REPLACE INTO

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情
三者之间的区别
1. insert into :插入数据,重复插入会出错
2. replace into:如果数据已经存在,就会用新值替换旧的值,没有存在相同的id,就新插入一条
3. insert ignore:如果已存在,就不会进行插入,跳过这个
INSERT IGNORE 与INSERT INTO

INSERT IGNORE 与INSERT INTO的区别就是INSERT IGNORE会忽略数据库中已经存在 的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据。这样就可以保留数据库中已经存在数据,达到在间隙中插入数据的目的。

eg: insert ignore into table(name)  select  name from table2 
mysql中常用的三种插入数据的语句:
  • insert into表示插入数据,数据库会检查主键(PrimaryKey),如果出现重复会报错;

  • replace into表示插入替换数据,需求表中有PrimaryKey,或者unique索引的话,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和insert into一样;
    REPLACE语句会返回一个数,来指示受影响的行的数目。该数是被删除和被插入的行数的和。如果对于一个单行REPLACE该数为1,则一行被插入,同时没有行被删除。如果该数大于1,则在新行被插入前,有一个或多个旧行被删除。如果表包含多个唯一索引,并且新行复制了在不同的唯一索引中的不同旧行的值,则有可能是一个单一行替换了多个旧行。

  • insert ignore表示,如果中已经存在相同的记录,则忽略当前新数据;

下面通过代码说明之间的区别,如下:
create table testtb(
  id int not null primary key,
  name varchar(50),
  age int
);
INSERT INTO testtb(id,NAME,age)VALUES(1,"bb",13);//第二次执行会报出错误
SELECT * FROM testtb;
INSERT IGNORE INTO testtb(id,NAME,age)VALUES(1,"aa",13);
SELECT * FROM testtb;//仍是1,“bb”,13,因为id是主键,出现主键重复但使用了ignore则错误被忽略
REPLACE INTO testtb(id,NAME,age)VALUES(1,"aa",12);
SELECT * FROM testtb; //数据变为1,"aa",12
MySQLREPLACE INTOINSERT INTO的区别分析 注意,除非表有一个PRIMARY KEY或UNIQUE索引,否则,使用一个REPLACE语句没有意义。该语句会INSERT相同,因为没有索引被用于确定是否新行复制了其它的行。[separator] 所有列的值均取自在REPLACE语句中被指定的值。所有缺失的列被设置为各自的默认值,这和INSERT一样。您不能从当前行中引用值,也不能在新行中使用值。如果您使用一个例如“SET col_name = col_name + 1”的赋值,则对位于右侧的列名称的引用会被作为DEFAULT(col_name)处理。因此,该赋值相当于SET col_name = DEFAULT(col_name) + 1 立即下载

相关推荐

replace intoinsert into区别

replace intoinsert 功能类似,不同点在于:replace into 首先尝试插入数据到表中, 1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。 2. 否则,直接插入新数据。 要注意的是:插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据。

welcome to daijiguo's blog 3716

INSERT IGNORE

INSERT IGNOREINSERT INTO的区别 就是INSERT IGNORE会忽略数据库中已经存在 的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据。这样就可以保留数据库中已经存在数据,达到在间隙中插入数据的目的。 mysql> create table testtb( -> id int not null primary ke...

weixin_34198762的博客 2930

MySQL:插入数据insert ignore,重复数据自动忽略

MySQL:插入数据insert ignore,重复数据自动忽略

会写Bug的攻城狮 1万+

MySQL中的insert into replace into用法和区别

我们先来看下MySQL官网对于两者的解释: 然后用一个小实例简单说明下: replace intoinsertinto都是基于唯一索引或主键基础上使用的,必须有主键或唯一索引 首先创建一张test表 DROP TABLE IF EXISTS `test`; CREATE TABLE `test` ( `id` bigint(20) NOT NULL COMMENT '主键ID', `name` varchar(50) DEFAULT NULL, `phone` varch.

默慊的博客 1万+

MySQLinsert ignore into, replace into用法

1.insert ignore into 会忽略数据库中已经存在的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据 INSERT IGNORE INTO 表名(字段名...) VALUES (值...) 2.on duplicate key update replace into表示插入替换数据;如:表中有PRIMARY,或者UNIQUE索引的话,当表中已经存在这条数据,则用新数据替换,如果没有数据,效果则和insert into一样; INSERT INTO 表名(字段名...)

weixin_44937881的博客 1万+

MySQL insert ignoreinsert intoreplace into的区别

INSERT IGNORE INSERT INTO的区别 insert ignore insert into的区别就是insert ignore会忽略数据库中已经存在 的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据。这样就可以保留数据库中已经存在数据,达到在间隙中插入数据的目的。 eg: insert ignore into table(name) select name from table2 mysql中常用的三种插入数据的语句: insert into表示插入

记录编程生活 2251

INSERT INTOINSERT IGNORE INTO 以及REPLACE INTO的区别

文章目录 关于INSERT INTOINSERT IGNORE INTO 以及REPLACE INTO的区别 先创建一个数据表 CREATE TABLE plt_order_items( id int not null primary key, order_id varchar(50), order_item_id varchar(50), product_id int, product_name varchar(50) ) INSERT INTO的介绍和使用

小白的程序猿 976

INSERTIGNORE INTOREPLACE INTO的区别

INSERTIGNORE INTOREPLACE INTO的区别

爱敲代码的小黑的博客 1101

MySQL中的insert ignore into, replace into等的一些用法总结

mysql中常用的三种插入数据的语句: 一.insert into   表示插入数据,数据库会检查主键(PrimaryKey),如果出现重复会报错;   insert … select … where not exist:根据select的条件判断是否插入,可以不光通过primary 和unique来判断,也可通过其它条件。例如: INSERT INTO books (name) SELECT 'xiaoming' FROM dual WHERE NOT EXISTS (SELECT id FRO

m0_48805880的博客 1298

sql中的ignore语句_MySQL中的insert ignore into, replace into等的一些用法总结

mysql中常用的三种插入数据的语句:一.insert into表示插入数据,数据库会检查主键(PrimaryKey),如果出现重复会报错;insert … select … where not exist:根据select的条件判断是否插入,可以不光通过primary 和unique来判断,也可通过其它条件。例如:INSERT INTO books (name) SELECT 'MySQL Ma...

weixin_30533301的博客 922

INSERT INTOINSERT IGNORE INTOREPLACE INTO 、ON DUPLICATE KEY ON 关系

首先我们先创建一张简单的用户表; CREATE TABLE `person` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `age` tinyint(2) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `...

寻找09之夏的博客 741

insert into 的加强版replace intoinsert ignore into

insert into 是插入表最常用的语句,一般我们往表里插入数据要首先判断是否存在,再插入。举个栗子~~~~ if not exists (select 1 from t where id = 1) then insert into t(id, update_time) values(1, getdate()) else update t set update_time = get

u013677636的博客 3418

MySQL中的INSERT IGNORE INTO, INSERT INTO,REPLACE INTO区别

INSERT IGNORE INSERT INTO的区别就是INSERT IGNORE会忽略数据库中已经存在 的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据。这样就可以保留数据库中已经存在数据,达到在间隙中插入数据的目的。 eg:insert ignore into table(name) select name from table2 mysql中常...

水逆呱的博客 628

MySQLinsert ignore ,insert replace, insert into 之间的区别

存在 不存在 insert ignore 忽略 插入 insert into 报错 插入 replace into 替换 插入 表要求:插入的数据中存在,PrimaryKey,或者unique索引的字段; 结果:表id都会自增 replace into :替换插入的原理是:如果存在,先删除数据,再插入一条新的记录到表中,自增主键的值会增加。 INSERT IGNOR :忽略插入的原理是:如果存在,原先对应的主键或者唯一键,不管其他字段的值有无变化,之前对应的这条数据都不会变化...

Hurpe 1087

mysql ignore replace_MySQL中的insert ignore into, replace into用法总结

MySQL replace into 有三种形式:1. replace into tbl_name(col_name, ...) values(...)2. replace into tbl_name(col_name, ...) select ...3. replace into tbl_name set col_name=value, ...1.insert ignore into当插入数据时...

weixin_35955473的博客 207

mysql 四种种插入 inser into insert ignore into replace into insert into on duplicate key update

前提:info 表, 只有两个字段,主键id ,还有一个普通列name info1表,四个字段,主键id,唯一索引cardId,普通列varchar型name,普通列varchar型address 1. insert into 数据库会检查主键(PrimaryKey)和唯一索引,如果出现重复会报错; 2. A:insert into info (id,name)values(5,'xixi') on DUPLICATE key update name=CONCAT(...

weixin_42446078的博客 643

INSERT INTO vs REPLACE INTO vs INSERT IGNORE INTO

前言 在看某块功能的代码的时候,看到了比较有意思的 SQL 语句,如下: INSERT IGNORE INTO ... INSERT INTO 用的最多的插入语句了,直接插入一条数据,如果主键冲突,会报错。 REPLACE INTO 替换数据,SQL 语句中必须存在主键或者唯一键,如果存在,则更新,否则插入。 单个 INSERT INTO 语句插入多个值时,InnoDB 表中,会认为这是单个事务,要么都成功,要么都失败。 如果用了 INSERT IGNORE INTO 语句插入多个值时,InnoDB 表中

IMJCW的博客 340

MySQL中的insert ignore into, replace into等的一些用法

CREATE TABLE `books` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(200) NOT NULL, `createTime` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`id`), ...

qq_31459039的博客 2268

replace intoinsert ignore 的用法

首先使用场景是在mysql 故事是酱紫的:最近在弄个java爬虫(有兴趣的给文章点个赞,下篇文章出),业务是把数据爬取下来然后存入数据库,若主键存在就更新数据,如果没有则删除,这时候当然是使用replace intoreplace into:我们都知道它是insert into的增强版。 insert into:常用的普通插入,主键存在则冲突。 ...

成君的博客 949
上一篇: java面向的对象特性一:封装
下一篇: ELK
123.56.119.133:8090
博客等级 码龄11年 51粉丝 332原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值