Postgres %%功能

out*_*olf 2 sql postgresql plpgsql

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

SELECT nextval(seq_name) %% 1024 INTO seq_id;
Run Code Online (Sandbox Code Playgroud)

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

operator does not exist: bigint %% integer
Run Code Online (Sandbox Code Playgroud)

Erw*_*ter 5

最有可能的是,这是通过使用来翻译动态SQL产生的产物format(),需要将%字符加倍。如果正确转换,则应为模运算符%,这对于分片解决方案或类似方法也很有意义。实际上,您获得的数字从0循环到1023。

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