PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Cosa significa %% in PL/pgSQL?

Il solo posto che mi viene in mente, dove un % verrebbe raddoppiato in Postgres standard è all'interno di format() funzione, comunemente usata per produrre una stringa di query per SQL dinamico. Confronta esempi qui su SO.

Il manuale :

Difficile quando si utilizza l'operatore modulo % in una dichiarazione dinamica!

Sospetto che stiano eseguendo SQL dinamico dietro le quinte, che hanno generalizzato e semplificato per l'articolo. (Il nome qualificato dallo schema della sequenza è 'insta5.table_id_seq' e la tabella non sarebbe stata denominata "tabella".) Nel processo si sono dimenticati di "non sfuggire" all'operatore modulo.
Questo è ciò che potrebbero effettivamente essere in esecuzione:

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