Re: problema con autoincremento nextval

From: barbara cioppa <barbara_cioppa(at)yahoo(dot)com>
To: Alessio Gennari <alessio(dot)gennari78(at)gmail(dot)com>
Cc: Torello Querci <tquerci(at)gmail(dot)com>, "pgsql-it-generale(at)postgresql(dot)org" <pgsql-it-generale(at)postgresql(dot)org>
Subject: Re: problema con autoincremento nextval
Date: 2012-01-18 10:23:34
Message-ID: 1326882214.89857.YahooMailNeo@web45111.mail.sp1.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-it-generale

in teoria con
ALTER table "Pratiche".pratica
ALTER COLUMN id type serial;
dovrebbe funzionare ma mi dice che il tipo serial non esiste!
Inizio a pensare di cambiare DBMS :((

________________________________
From: Alessio Gennari <alessio(dot)gennari78(at)gmail(dot)com>
To: barbara cioppa <barbara_cioppa(at)yahoo(dot)com>
Cc: Torello Querci <tquerci(at)gmail(dot)com>; "pgsql-it-generale(at)postgresql(dot)org" <pgsql-it-generale(at)postgresql(dot)org>
Sent: Wednesday, January 18, 2012 11:15 AM
Subject: Re: [pgsql-it-generale] problema con autoincremento nextval

Credo sia una limitazione del pgAdminIII.

L'unico modo per cambiare quel campo è un alter. Però, se quel campo è oggetto di una foreign key proveniente da un'altra tabella, credo che l'alter non possa funzionare.

2012/1/18 barbara cioppa <barbara_cioppa(at)yahoo(dot)com>

Salve ancora,
>ho aggiornato pgAdmin III alla 1.14.1 , il problema è che se aggiungo un campo posso metterlo di tipo serial,mentre non posso cambiare il tipo di ID in nessun modo, nè con l'interfaccia nè con l'sql.
>Questo non l'ho capito. Inoltre non posso eliminare l'id perchè da quel campo dipendono diverse tabelle per la referential integrity quindi dovfrei cancellare i riferimenti in cascata (che non mi ricordo nemmeno la sintassi).
>Perchè non posso cambiare il tipo in serial? Non me lo da come opzione sui tipi di dato.
>
>
>
>
>
>________________________________
> From: Torello Querci <tquerci(at)gmail(dot)com>
>To: Alessio Gennari <alessio(dot)gennari78(at)gmail(dot)com>
>
>Cc: barbara cioppa <barbara_cioppa(at)yahoo(dot)com>; "pgsql-it-generale(at)postgresql(dot)org" <pgsql-it-generale(at)postgresql(dot)org>
>Sent: Friday, January 13, 2012 2:22 PM
>
>Subject: Re: [pgsql-it-generale] problema con autoincremento nextval
>
>
>
>
>
>
>Il giorno 13 gennaio 2012 14:12, Alessio Gennari <alessio(dot)gennari78(at)gmail(dot)com> ha scritto:
>
>Ciao Barbara,
>>innanzitutto sarebbe importante sapere che versione di postgres stai utilizzando, comunque prova a fare così:
>>
>>
>>ID integer not null default nextval( "Pratiche"."numID"::regclass)
>>
>>
>>Questa è la sintassi per il postgres 9.
>>
>>
>>Per quanto riguarda l'utilizzo dello stesso sequence su due tabelle differenti non so se abbia senso, io personalmente non l'ho mai fatto. Se si potesse fare comunque il sequence andrebbe sempre in avanti ignorando la tabella da cui è stato invocato. In parole povere non potrai mai avere uno stesso id in entrambe le tabelle.
>>
>>
>Se può fare e il comportamento è proprio quello da te descritto, ovvero viene staccato un ID univoco indipendente dalla tabella dove è stato usato.
>
>
>Esistono molti casi in cui questo può essere utile, per esempio quando ci sono tipi diversi di "documenti" che risiedono in tabelle diverse e che devono essere identificati in modo univoco.
>Vero che si può fare in altri modi ma l'uso delle sequence usate in più tabelle semplifica molto la vita.
>Ovviamente il fatto che si possa fare non significa che si debba fare.
>
>
>Saluti
>
>
>
>

In response to

Responses

Browse pgsql-it-generale by date

  From Date Subject
Next Message Alessio Gennari 2012-01-18 10:49:46 Re: problema con autoincremento nextval
Previous Message Alessio Gennari 2012-01-18 10:15:17 Re: problema con autoincremento nextval