SQL35 批量插入数据,不使用replace操作

本文通过实例解析SQL的insertignore和replaceinto语句,对比它们在插入数据时遇到主键冲突时的不同行为:insertignore忽略冲突,replaceinto则替换旧数据。理解并掌握这两个命令有助于避免数据冗余和维护数据一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

描述
题目已经先执行了如下语句:

drop table if exists actor;
CREATE TABLE actor (
   actor_id  smallint(5)  NOT NULL PRIMARY KEY,
   first_name  varchar(45) NOT NULL,
   last_name  varchar(45) NOT NULL,
   last_update  DATETIME NOT NULL);
insert into actor values ('3', 'WD', 'GUINESS', '2006-02-15 12:34:33');

在这里插入图片描述
SQL练习题35(中等):

insert ignore into actor values ('3','ED','CHASE','2006-02-15 12:34:33');

MySQL考点:

--1、当插入数据的时候,会检查主键。如果主键重复,不允许插入
insert into 表名 values();
--2、如果主键重复,不插入新数据
insert ignore into 表名 values();
--3、如果主键重复,用新数据替代
replace into 表名 values();
--以上题为例
#报错,主键冲突
insert into actor values ('3','ED','CHASE','2006-02-15 12:34:33');

#还是旧的数据  ('3', 'WD', 'GUINESS', '2006-02-15 12:34:33')
insert ignore into actor values ('3','ED','CHASE','2006-02-15 12:34:33');

#主键冲突,用新数据替换旧数据('3','ED','CHASE','2006-02-15 12:34:33')
replace into actor values ('3','ED','CHASE','2006-02-15 12:34:33');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值