sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Qué significa %% en PL/pgSQL?

El único lugar que se me ocurra, donde un % se duplicaría en Postgres estándar está dentro de format() función, comúnmente utilizada para producir una cadena de consulta para SQL dinámico. Compara ejemplos aquí en SO.

El manual :

Complicado al usar el operador de módulo % en una declaración dinámica!

Sospecho que están ejecutando SQL dinámico detrás de las cortinas, que generalizaron y simplificaron para el artículo. (El nombre calificado de esquema de la secuencia es 'insta5.table_id_seq' y la tabla no se llamaría "tabla".) En el proceso, se olvidaron de "deshacer el escape" del operador de módulo.
Eso es lo que en realidad pueden estar ejecutando:

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