Mondi su mondi, sistemi di sistemi.

PostgreSQL: generare delle sequence senza salti

Le sequence sono un sup­porto, for­nito dalla stra­grande mag­gio­ranza dei data­base, per gene­rare dei valori nume­rici uni­voci, che pos­sono poi essere usati per iden­ti­fi­care ogni sin­gola riga di una tabella. In PostgreSQL, la sequence risulta in pra­tica essere un numero intero sem­pre cre­scente e che non viene più riu­ti­liz­zato: se il numero n, che otte­niamo dal sistema, viene uti­liz­zato in una tran­sa­zione che poi sarà abor­tita, il pros­simo numero sarà comun­que almeno n+1.

Ci sono, però, situa­zioni in cui non è suf­fi­ciente che la nume­ra­zione sia sem­pre cre­scente ma che non pre­senti “buchi”; e que­sto non è pos­si­bile “right out of the box” con PostgreSQL.

Che fare?

In que­sto arti­colo, la solu­zione pro­po­sta con­si­ste nel creare una tabella di appog­gio, che una fun­zione si occu­perà di aggior­nare; que­sta fun­zione sarà quella usata come default per la tabella vera e pro­pria che, come è lecito aspet­tarsi, non con­sen­tirà cancellazioni.

I det­ta­gli sono nell’articolo e dovreb­bero essere piut­to­sto chiari; in casi di dubbi i com­menti sono a disposizione.

Per proseguire

Commenti e trackback sono disabilitati.