
有个导入数据需求,要先判断 id 在数据库是否存在,再决定是报错还是插入。 请教各位如何才能高效地完成?
1 zn 2018-11-16 12:06:26 +08:00 via iPhone 根据数据库不同而不同。 有些数据库支持 replace into,这个应该是最稳妥最方便的。 有些只能 select 后再去根据情况插入或者 update |
2 o562dsRcFqYl375i 2018-11-16 17:16:30 +08:00 id 是主键?是的话直接 select,本来就快到飞起,你是有多大数据量? |
4 jyjsjd OP @huangzongzhuan 是主键,select 去查被批了 |
5 kkkkkrua 2018-11-16 17:47:38 +08:00 是程序搞还是 SQL 语句搞? |
6 springGun 2018-11-16 17:54:03 +08:00 mysql 可以使用 insert ignore into ,根据返回值判断有没有插入成功 |
7 so1n 2018-11-16 17:55:29 +08:00 insert ignore |
9 EchoUtopia 2018-11-16 18:58:23 +08:00 via Android postgres 的话可以 insert into. ..on conflict() do nothing returning. id,然后判断这个 id 是否为空,如果是,表示已存在 |
10 FrailLove 2018-11-16 19:03:30 +08:00 via iPhone merge into |
12 alakey1989 2018-11-16 21:02:57 +08:00 先说下是什么数据库,什么语言 |
13 jyjsjd OP @alakey1989 mysql,Java |
14 alakey1989 2018-11-16 22:07:05 +08:00 mysql 的话 insert on duplicate key update 这个看下能行不 |
15 alakey1989 2018-11-16 22:07:45 +08:00 哦不对,,你不是要更新。。 |
16 BigLion 2018-11-16 22:12:43 +08:00 select 1 from table where xxx=yyy |