LibreOffice Base 2 campi con incremento automatico

Buon giorno,
avrei bisogno di creare con LO Base una tabella con due campi [INTEGER]
ad incremento automatico di cui solo uno che sia una chiave primaria.
Quando provo a farlo, anche sul secondo campo mi crea automaticamente la
chiave e non trovo la soluzione.

Ne ho bisogno in quanto una volta all'anno dovrei riportare a 1 il
valore del secondo campo con l'istruzione SQL
ALTER TABLE "T_PROTOCOLLO" ALTER COLUMN "N_PROTOCOLLO" RESTART WITH 1

Al primo campo essendo una chiave primaria al quale sono collegate altre
tabelle, non posso farlo e in oltre il Data Base non mi permetterebbe di
avere due o più valori identici nella stessa chiave.

Il tutto dovrà gestire il protocollo della posta in entrata e in uscita.
Ho dovuto creare un DB in quanto non ho trovato nessun programma per
Linux Mint a 64 bit (nemmeno a pagamento).

Quindi, come potrei risolvere la questione dei due campi incrementali?
Oppure, avete un programma da consigliarmi?

Ciao e grazie

andrea

attachment.htm (2.64 KB)

Allora prima di tutto il tuo secondo valore [INTEGER] non deve essere
definito auto-incrementante siccome ci può essere solo una colonna tale
(in gergo DB sarebbe una colonna IDENTITY cioè di identità =
identificazione).

Dunque occorre individuare un'alternativa come quella di usare le
sequenze. Però anche usando loro non ci arrivi.

Eseguendo le seguenti due istruzioni SQL dall'interprete (nel menu "Extra"):

create sequence SeqSecondaColonna;
create table TabellaTest(col1 integer identity primary key, col2
integer generated by default as sequence SeqSecondaColonna not null)

La seconda non va a buon fine perché HSQLDB (motore di LibreOffice Base)
apparentemente supporta solo una colonna generate oppure colonne
d'identità per tabella
(Chapter 3. Schemas and Database Objects):

The |<identity column specification>| or |<identity column sequence
>> can be specified for only a single column of the table.

Secondo me restando su questo schema non rimane altro che usare i
trigger. Un concetto che poi non è banalissimo...

Matthias

Andrea Congiu wrote: