有个导入数据需求,要先判断 id 在数据库是否存在,再决定是报错还是插入。 请教各位如何才能高效地完成?
有个导入数据需求,要先判断 id 在数据库是否存在,再决定是报错还是插入。 请教各位如何才能高效地完成?
|
znNov 16, 2018 via iPhone
1
根据数据库不同而不同。
有些数据库支持 replace into,这个应该是最稳妥最方便的。 有些只能 select 后再去根据情况插入或者 update |
|
o562dsRcFqYl375iNov 16, 2018
2
id 是主键?是的话直接 select,本来就快到飞起,你是有多大数据量?
|
|
4
@huangzongzhuan 是主键,select 去查被批了
|
|
kkkkkruaNov 16, 2018
5
是程序搞还是 SQL 语句搞?
|
|
springGunNov 16, 2018
6
mysql 可以使用 insert ignore into ,根据返回值判断有没有插入成功
|
|
so1nNov 16, 2018
7
insert ignore
|
|
EchoUtopiaNov 16, 2018 via Android
9
postgres 的话可以 insert into. ..on conflict() do nothing returning. id,然后判断这个 id 是否为空,如果是,表示已存在
|
|
FrailLoveNov 16, 2018 via iPhone
10
merge into
|
|
alakey1989Nov 16, 2018
12
先说下是什么数据库,什么语言
|
|
13
@alakey1989 mysql,Java
|
|
alakey1989Nov 16, 2018
14
mysql 的话 insert on duplicate key update 这个看下能行不
|
|
alakey1989Nov 16, 2018
15
哦不对,,你不是要更新。。
|
|
BigLionNov 16, 2018
16
select 1 from table where xxx=yyy
|