1
qsbaq 2020-07-13 11:02:47 +08:00
感觉用异常处理方便些,只管插入就行了。
|
2
qsbaq 2020-07-13 11:03:09 +08:00
当然得设置唯一键
|
3
playniuniu 2020-07-13 11:09:58 +08:00 via Android
设置唯一索引,如果数据可以覆盖,就用 sql 里面的 replace into,否则就 insert into,看然后抓报错
|
4
takemeaway 2020-07-13 11:14:25 +08:00
不对吧,用异常那得是唯一索引啊,数据不可能都做索引吧。
再说了重复分很多种,单 KEY 还是多 KEY 重复呢? |
5
zsdroid 2020-07-13 11:14:47 +08:00 1
有逻辑删除需求的,唯一键会特别坑。
|
6
1018ji 2020-07-13 11:26:00 +08:00
判断是否重复,然后的业务逻辑是啥?
|
7
rr41ns 2020-07-13 11:31:32 +08:00
联合唯一索引?
|
8
jugelizi 2020-07-13 11:35:18 +08:00 via iPhone
伪删除的坑埋了
|
9
raysmond 2020-07-13 11:42:04 +08:00 1
得是数据库唯一索引才行。代码单个线程逻辑判断不行的,多线程和分布式环境下不适用。
|
10
VictorJing94 2020-07-13 11:49:26 +08:00
unique 约束啊
|
11
passerbytiny 2020-07-13 12:04:08 +08:00 via Android
看业务复杂度,简单的就主键 /唯一+捕获“唯一性冲突”异常,复杂点的就要先查出来再判断。但你问得是组合索引,说明不是单个字段,那业务复杂度就不会简单,必须选后者。
|
12
littlewing 2020-07-13 12:51:49 +08:00 via iPhone
数据重复的定义是啥?是只要 key 重复就算还是整行数据所有字段都相等?
|
13
realpg 2020-07-13 12:52:16 +08:00
unique index
insert ignore 获取 insert id |
14
FFFire 2020-07-13 14:33:57 +08:00
不是特别要求效率的话还是查一下吧,业务上的事别埋坑
|
15
Yuicon 2020-07-13 14:55:50 +08:00
加全局锁 然后查一遍插入
|
16
Tokiomi 2020-07-13 15:35:48 +08:00
互联网没有物理删除
|
17
wangsilence 2020-07-13 16:12:07 +08:00
建议使用逻辑,唯一索引不会使用 change buffer, 会影响插入效率
|
18
cs3230524 2020-07-13 18:42:21 +08:00 via Android
锁
|
19
newdongyuwei 2020-07-14 09:25:38 +08:00
|