PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

O que significa %% em PL/pgSQL?


O somente lugar que eu possa pensar, onde um % seria duplicado no padrão Postgres está dentro do format() função, comumente usada para produzir uma string de consulta para SQL dinâmico. Compare exemplos aqui no SO.

O manual :

Complicado ao usar o operador de módulo % em uma declaração dinâmica!

Eu suspeito que eles estão executando SQL dinâmico por trás das cortinas - que eles generalizaram e simplificaram para o artigo. (O nome qualificado do esquema da sequência é 'insta5.table_id_seq' e a tabela não seria nomeada como "table".) No processo, eles esqueceram de "desescape" do operador de módulo.
Isso é o que eles podem realmente estar executando:
EXECUTE format($$SELECT nextval('%I') %% 1024$$, seq_name)
INTO seq_id;