MySQL INSERT插入多字段条件判断,如果不存在则插入


问题?MySQL INSERT插入字段条件判断,如果不存在则插入


今天做项目遇到个问题,批量插入的时候,我们要进行多个字段数据的判断,怎么办呢?我想过几种方法:

注意:于普通的 INSERT 插入,如果想要保证不插入重复记录,我们只有对某个字段创建唯一约束实现


1.将需要存储的数据用List存储起来,将数据库表中的数据用List存储起来,到后台进行条件比对,符合条件的数据,直接insert数据。(:这种方法加大后台的压力,比较繁琐,我试过,不太主张)


2.需要存储的数据依然用List存储起来,每次插入的时候,就比对一次,也就是要查询一次,最后符合就插入数据。

(:这是最常用的一种方式)


3.最后一种是直接将List数据全部插入数据库。所有判断都在数据库中,符合条件则插入,不符合条件则不插入,这个运算压力都给了数据库.


:insert语句是没有where条件的,有人说可以做触发器,存储过程啊! 当然可以了,但是我要说的是如果是在只用insert语句中进行判断呢?

有没有呢?   必须有啊!如下:

INSERT INTO table(field1, field2, fieldn) SELECT 'field1', 'field2', 'fieldn' FROM DUAL WHERE NOT EXISTS(SELECT field FROM table WHERE field = ?)

运用临时表的方法,进行插入就好了。

参考资料:点击打开链接

有需要进行辅导帮助解决问题的同学,可以加群喔:不是推销,就是IT问题讨论

    


猜你喜欢

转载自blog.csdn.net/Mr_li13/article/details/75208035
今日推荐