开发者社区> 问答> 正文

mysql 重复插入数据问题

避免重复添加数据,又需要累加结果的一个需求。
表结构大致是这样子的:
1
pid, tid 在表中的组合是唯一的,有可能没有该组合;重复插入现有的 pid, tid 组合时,需要累加 count 和 duration 数值。
在网上查了许久,发现了 on duplicate key update 似乎是我想要的,于是写下 sql:
1
但是只能工作于 pid, tid 组合存在的情况,而且会说 Column 'stat.count' in field list is ambiguous;而没有 pid, tid 组成的时候,也插入不进去。

展开
收起
蛮大人123 2016-02-08 13:34:15 2789 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    试一下此方法,把代码贴给你:

    #建立pid、tid的UNIQUE INDEX
    ALTER TABLE `stat` ADD UNIQUE INDEX `pid_tid_UNIQUE` (`pid`, `tid`);
    #没有insert,主键冲突update
    insert into stat(pid, tid, count, duration) values(1,5,1,1) on duplicate key update count = count + 1, duration = duration + 1;

    on duplicate key update更多语法可参考《INSERT ... ON DUPLICATE KEY UPDATE Syntax》

    2019-07-17 18:39:35
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像