跟踪多个相同的条目

时间:2011-10-16 16:06:49

标签: mysql

我得到了一个表格,我允许相同的条目(重复,三元组等),但我每次都有一个列,我想要一个条目用这个条目存在多少次来更新。

所以我想写一个触发器,我已经可以通过

找到重复的条目了
select count(pid) from items group by pid having count(*);

但问题是这个查询返回的orinal表(导致有很多重复)的列数较少

所以查询和表之间没有1比1的关系,所以我可以使用更新。我怎样才能修改它以获得所需的结果

先谢谢你。

1 个答案:

答案 0 :(得分:1)

您将面临的主要问题是MySQL在修改items表本身后,不允许您使用AFTER INSERT ...触发器修改items表(想一想)如何导致循环引用。)

一种解决方案是将计数完全存储在一个单独的表中(比如items_pid_info)。该表的主键是pid,这个表将由主项目表上的触发器更新。当您需要访问给定pidCount的{​​{1}}时,只需加入此表格,您就可以获得给定pid的最新pid计数。因此:

pid

现在在create table items_pid_info (pid int unsigned not null primary key, pidCount int unsigned not null); 表格上创建INSERTUPDATEDELETE个触发器来更新items表:

items_pid_info

希望这有帮助。