SQL 语句级避免重复插入 Insert Select Not Exist
想要插入一条数据,要避免重复插入,又不想折腾两回数据库连接操作,可以参考如下办法
INSERT INTO table(column1,column2,column3 ...columnN)
SELECT value1,value2,value3 ...valueN
FROM dual
WHERE NOT EXISTS(
SELECT *
FROM table
WHERE value = ?
);
dual是为了构建查询语句而存在的,Oracle中很常见,配合INSERT ... SELECT构建成我们需要的,并指定了数据.
EXISTS通过这个判断是否存在的函,就免去了我们做IF-ELSE的冗繁操.![]()
:
INSERT INTO content (
detail,
status,
beginTime,
endTime)
SELECT
@detail,
1,
NULL,
NULL
FROM DUAL
WHERE NOT EXISTS(
SELECT contentId
FROM content
WHERE detail=@detail);
@detail是要存入的内容,这里对内容进行了检索,如果要这么做,最好对该字段做唯一约束,或加索引
省掉了IF-ELSE,在iBatis配置一下就ok了,哈!
还有个更坚决的办法——replace into
replace into blacklist(userInfoId,uid) select userInfoId,uid from user_info u where uid in( 'u303565440','u303566922','u303515112','u303559738');
手机扫码阅读
微信或手机浏览器扫一扫,随时随地随心阅读与分享
还没有人赞过,来做第一个
🤞 分享
订阅更新
输入邮箱,第一时间接收本站新文章推送。
版权所有:辰峰微网
文章标题:SQL 语句级避免重复插入 Insert Select Not Exist
文章链接:https://www.14551.cn/MCSQL/662.html
版权声明:本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!
文章标题:SQL 语句级避免重复插入 Insert Select Not Exist
文章链接:https://www.14551.cn/MCSQL/662.html
版权声明:本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!
![[分享]工单按工作中心工单状态月份合计工单数](/content/uploadfile/201609/29751475135708.png)
发表评论