PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Que signifie %% en PL/pgSQL ?

Le seul endroit auquel je peux penser, où un % serait doublé dans Postgres standard est à l'intérieur du format() fonction, couramment utilisée pour produire une chaîne de requête pour SQL dynamique. Comparez les exemples ici sur SO.

Le manuel :

Difficile lors de l'utilisation de l'opérateur modulo % dans une déclaration dynamique !

Je soupçonne qu'ils exécutent du SQL dynamique derrière les rideaux - qu'ils ont généralisé et simplifié pour l'article. (Le nom qualifié par le schéma de la séquence est 'insta5.table_id_seq' et la table ne s'appellerait pas "table".) Dans le processus, ils ont oublié de "déséchapper" l'opérateur modulo.
C'est peut-être ce qu'ils exécutent :

EXECUTE format($$SELECT nextval('%I') %% 1024$$, seq_name)
INTO seq_id;