描述
题目已经先执行了如下语句:
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');
本文通过实例解析SQL的insertignore和replaceinto语句,对比它们在插入数据时遇到主键冲突时的不同行为:insertignore忽略冲突,replaceinto则替换旧数据。理解并掌握这两个命令有助于避免数据冗余和维护数据一致性。

被折叠的 条评论
为什么被折叠?



