关于我的触发式自定义徽章查询,需要一些帮助

大家好,

我的 SQL 查询遇到了问题。我的目标/期望是当用户回复特定主题时,立即授予一个自定义徽章。问题在于我只完成了一半,因为每日的“回填”作业成功了,但更即时的效果显然没有奏效。

我们的论坛利用此徽章(在自动化插件的帮助下)来提供对其他类别的访问权限,因此每日结束/回填的延迟对于新用户来说非常令人困惑,并且肯定会扼杀他们加入时的动力和热情。

我已经忽略这个问题一段时间了,现在准备放弃并寻求帮助。

我基本上是从精彩的帖子 创建触发式自定义徽章查询 中借鉴了这个查询,所以对大多数人来说它看起来应该很熟悉。

SELECT p.user_id, p.id post_id, p.created_at granted_at
FROM badge_posts p
WHERE p.topic_id = 11558
AND (:backfill OR p.id IN (:post_ids) )

或者我也尝试过

SELECT
DISTINCT ON (p.user_id)p.user_id, p.id post_id, p.created_at granted_at
FROM badge_posts p
WHERE p.topic_id = 11558 
AND(:backfill OR p.id IN (:post_ids) )

两者都适用于每日结束回填,但缺乏我期望的即时性。

这是徽章当前设置的屏幕截图。

当我检查错误日志时,我看到了我最初实施查询时的一些回填失败日志,但我没有看到任何关于用户发帖时查询失败的日志。

我可能只是遗漏了显而易见的东西,但我已经看得眼花缭乱了,所以希望你们中的某位能可怜我并给我一些提示……或者至少为我指出一些有用的文档。

提前感谢!

1 个赞

尚未测试,但有没有可能是触发器应该是**“当用户编辑或创建帖子时”**?

我认为你现在设置的那个 = 它会在点赞、标记、书签等事件上触发,而不是在帖子创建时触发。

2 个赞

哦哦哦哦。我以为我已经尝试了这些设置的所有排列组合。但我刚刚测试了一下,就是那个设置!你帮我解决了!

这么几个月来我一直像鸵鸟一样把头埋在沙子里,结果只是一个如此简单的修复!

这是一次多么美妙的经历啊。

谢谢 @chapoi

___\_

为了后人参考……这是修复方法。

1 个赞

呵呵,非常欢迎!