[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Postgresql-it] Progressivi di riga



devi gestire accessi concorrenti? se no, allora basta che fai una procedura con
   select max( n_riga ) + 1 from D where Prog_M = 1;
altrimenti, se vuoi essere transaction safe ma non te ne frega niente di avere, eventualmente, dei "buchi" nel tuo progressivo n_riga (avere, magari, 1, 2, 4, 5 ...), puoi creare un trigger sulla tabella M che crea una sequence per ogni nuovo prog_M (e le chiami tipo seq_m_1, seq_m_2 etc.), dopodiché scrivi un trigger sulla tabella D in cui vai a leggere dalla sequence corretta per valorizzare il campo n_riga. se invece vuoi essere transaction safe e non avere buchi nel progressivo, direi che, almeno su postgres <=7.4, non c'è modo di farlo se non scrivendo qualcosa in C. se hai la possibilità di importare delle funzioni in C (ossia: se hai i diritti necessari sul tuo database), io ho fatto un generatore di contatori che sono transaction safe ma garantiscono la progressività in C per mio uso e consumo e che funziona. nel caso ti serva e non trovi altra soluzione te lo passo volentieri (e per par condicio a chiuque sia interessato, of course).

m.



Enrico wrote:

Ragazzi ho un problemino:
Ho una tabella M diciamo "master" in cui ho un progressivo serial ad esempio:

M ( prog_M serial, campo1,.....,campo N)

e una tabella D "detail" fatta così

(prog_M,n_riga, etc....)

io vorrei generare una procedura che mi generi un progressivo di riga n_riga sulla tabella detail D correlata al valore di prog_M, mi spiego con un esempio:

Valore di prog_M = 1

-----------------
Prog_M  n_riga
1                  1
1                  2
1                  3


Valore di prog_M = 2

-----------------
Prog_M  n_riga
2                  1
2                  2
2                  3

Insomma un progressivo di riga che però tenga conto del valore del progressivo della tabella a cui il progressivo di riga è correlato.

Grazie a tutti Enrico

_______________________________________________
Postgresql-it mailing list
Postgresql-it@xxxxxxxxxxxxxxxxx
http://www.linuxtime.it/mailman/listinfo/postgresql-it