Postgres %%在函数中的含义是什么?

4
这个语句中的"%%"是什么意思?
SELECT nextval(seq_name) %% 1024 INTO seq_id;

“当我使用Postgres时,为什么会出现这种情况?”
operator does not exist: bigint %% integer

2
这可能是模数运算符(%)的打字错误,或者是您尚未安装的扩展定义的运算符。 - Ben Grimm
1个回答

7
很可能这是使用format()转换动态SQL时出现的问题,需要加倍使用%字符。如果正确翻译,则应该是模运算符%,这对于分片解决方案或类似方案也是有意义的。实际上,您将获得从0到1023循环的数字。
我怀疑它与我们已经处理过的内容相同:

相信这段代码示例来自Instagram博客文章中有关生成唯一ID的部分。我也遇到了同样的问题。https://instagram-engineering.com/sharding-ids-at-instagram-1cf5a71e5a5c - What Would Be Cool

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接