函数中的 Postgres %%

Postgres %% in function

这个语句中的“%%”是什么意思?

SELECT nextval(seq_name) %% 1024 INTO seq_id;

当我使用它时,为什么 Postgres 会说?

operator does not exist: bigint %% integer

很可能,这是将动态 SQL 翻译成 format() 的产物,这需要将 % 个字符加倍。如果翻译正确,应该是 modulo operator %,这对于分片解决方案或类似解决方案也有意义。实际上,您得到的数字从 0 循环到 1023。

我怀疑这与我们已经在此处处理过的相同:

  • What does %% in PL/pgSQL mean?