【发布时间】:2018-02-01 17:22:58
【问题描述】:
我有 2 张桌子 第一个表 word_cloud (auto inc)、predefined_text、content_id。 第二个表 word_cloud_count (auto inc),predefined_text,content_id,count 。 我在将数据插入 word_cloud 时调用触发器,它基本上对单词进行分组,计算计数并将其插入 word_cloud_count
word_cloud 表由
id | predefined_text | content_id
---------------------------------
1 | ABC | 1
2 | ABC | 1
3 | ABC | 1
4 | XYZ | 2
5 | XYZ | 2
6 | XYZ | 2
7 | XYZ | 1
8 | ABC | 2
9 | ABC | 2
10 | ABC | 2
word_cloud_count 由
id | predefined_text | content_id | count
-----------------------------------------------
1 | ABC | 1 | 3
2 | XYZ | 2 | 3
3 | ABC | 2 | 3
4 | XYZ | 1 | 1
触发函数
CREATE TRIGGER word_cloud_count_insert after insert on word_cloud
INSERT INTO word_cloud_count (Word,content_id ,count )
SELECT predefined_text,content_id, count(*)
FROM word_cloud
group by predefined_text,content_id
一切正常,值被插入到 word_cloud_count 表中
但是我的问题是每次将数据插入 word_cloud 时都会调用触发器并将重复值存储到 word_cloud_count 中
如何避免这种情况
任何建议都会有很大帮助,在此先感谢
【问题讨论】:
-
你的触发器没有意义。例如,“之前”或“之后”在哪里?还要显示表的结构,以及您希望触发器执行的操作。
-
@GordonLinoff 每次将值插入 word_cloud 时,都会调用我的触发器并将相同的值插入 word _cloud_count 表中,如果不存在相同的值,我希望我的触发器更新计数器它应该插入。