mysql 重复插入数据问题

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

30秒到达战场

题主试试:#建立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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript