首页 > 试题广场 >

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

[编程题]批量插入数据,不使用replace操作
  • 热度指数:126370 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
题目已经先执行了如下语句:
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');

对于表actor插入如下数据,如果数据已经存在,请忽略(不支持使用replace操作)
actor_id first_name last_name last_update
'3' 'ED' 'CHASE' '2006-02-15 12:34:33'
示例1

输入

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');

输出

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

发表于 2024-02-06 00:05:35 回复(0)
insert ignore into actor 
values ('3','ED','CHASE','2006-02-15 12:34:33');
发表于 2024-01-23 20:53:26 回复(0)
insert ignore into actor values('3','ED','CHASE','2006-02-15 12:34:33')
发表于 2023-10-25 11:12:58 回复(0)
merge actor a using (select '3' actor_id,'ED' first_name,'CHASE' last_name,'2006-02-15 12:34:33' last_update from dual) b on (a.actor_id=b.actor_id) when not matched then insert values (b.actor_id,b.first_name,b.last_name,b.last_update)
可以用merge吗
发表于 2022-10-09 09:32:43 回复(0)
发表于 2022-06-05 10:59:46 回复(0)
insert ignore into actor
values(3,'ED','CHASE','2006-02-15 12:34:33');

第一次见ignore这东西。。。可以
发表于 2022-06-02 14:38:46 回复(0)
insert ignore INTO actor(actor_id,first_name,last_name,last_update)
values('3','ED','CHASE','2006-02-15 12:34:33');
发表于 2022-03-01 16:02:29 回复(0)
insert ignore into actor values('3','ED','CHASE','2006-02-15 12:34:33')
发表于 2021-12-28 22:04:35 回复(0)
这个为什么不行?
UPDATE actor SET first_name='ED',last_name='CHASE',last_update='2006-02-15 12:34:33' WHERE actor_id=3
发表于 2021-12-06 14:36:49 回复(1)
insert IGNORE INTO actor VALUES (3,'ED','CHASE','2006-02-15 12:34:33')
在评论区才学的ignore这个用法  不然没一点思路
发表于 2021-11-11 16:24:14 回复(0)
insert ignore into actor
values ('3', 'ED', 'CHASE', '2006-02-15 12:34:33');
发表于 2021-10-22 23:38:48 回复(0)
insert IGNORE into actor
values('3','ED','CHASE','2006-02-15 12:34:33');

发表于 2021-10-18 11:25:07 回复(0)
##3

INSERT IGNORE INTO actor
values('3', 'ED', 'CHASE', '2006-02-15 12:34:33')



发表于 2021-10-15 02:21:17 回复(0)
  •  insert into
    表示插入数据,数据库会检查主键,如果出现重复会报错;
  • replace into
    表示插入替换数据,需求表中有PrimaryKey, 或者unique索引,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和insert into一样;
  • insert ignore
    如果中已经存在相同的记录,则忽略当前新数据;
    insert ignore actor values('3','ED','CHASE','2006-02-15 12:34:33');

发表于 2021-10-06 13:18:12 回复(1)

学习你们的答案:

如果不存在则插入,如果存在则忽略
INSERT OR IGNORE INTO tablename VALUES(...);
 
如果不存在则插入,如果存在则替换
INSERT OR REPLACE INTO tablename VALUES(...);
 
这里指的存在表示的是unique属性的列值存在的情况下,unique表示键值唯一



发表于 2021-10-01 16:37:19 回复(0)
# insert into表示插入数据,数据库会检查主键,如果出现重复会报错;
# replace into表示插入替换数据,需求表中有PrimaryKey,
#             或者unique索引,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和insert into一样;
# insert ignore表示,如果中已经存在相同的记录,则忽略当前新数据;
发表于 2021-09-15 13:09:25 回复(0)
insert ignore into actor values("3","ED","CHASE","2006-02-15 12:34:33")

发表于 2021-09-04 15:57:02 回复(0)
insert ignore into actor values('3', 'ED', 'CHASE', '2006-02-15 12:34:33')

发表于 2021-08-30 17:21:51 回复(0)
两种解法:
    第一种insert ignore into语句
    
insert ignore into actor (3,'ED','CHASE','2006-02-15 12:34:33');

   第二钟是on dupilcate key update语句

insert into actor (3,'ED','CHASE','2006-02-15 12:34:33') on duplicate key update id = id;



   
发表于 2021-08-15 01:34:19 回复(0)