为了账号安全,请及时绑定邮箱和手机立即绑定

mysql 重复插入数据问题

mysql 重复插入数据问题

动漫人物 2019-04-13 08:46:35
避免重复添加数据,又需要累加结果的一个需求。表结构大致是这样子的:ColumnTypeCommentsidint(11)自增主键pidint(11)p标识tidint(11)t标识countint(11)出现次数durationint(11)时延pid,tid在表中的组合是唯一的,有可能没有该组合;重复插入现有的pid,tid组合时,需要累加count和duration数值。在网上泡了许久,发现了onduplicatekeyupdate似乎是我想要的,于是写下sqlinsertintostat(pid,tid,count,duration)(selectpid,tid,count,durationfromstatwherepid=1andtid=5)onduplicatekeyupdatestat.count=stat.count+1,stat.duration=stat.duration+1;但是只能工作于pid,tid组合存在的情况,而且会说Column'stat.count'infieldlistisambiguous;而没有pid,tid组成的时候,也插入不进去。囧囧有神,求sql大神包养~
查看完整描述

2 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

题主试试:#建立pid、tid的UNIQUEINDEXALTERTABLE`stat`ADDUNIQUEINDEX`pid_tid_UNIQUE`(`pid`,`tid`);#没有insert,主键冲突updateinsertintostat(pid,tid,count,duration)values(1,5,1,1)onduplicatekeyupdatecount=count+1,duration=duration+1;onduplicatekeyupdate
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 411 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信