Received: from magus.postgresql.org (magus.postgresql.org [87.238.57.229]) by mail.postgresql.org (Postfix) with ESMTP id 3C78A86A549 for ; Wed, 18 Jan 2012 06:13:06 -0400 (AST) Received: from nm13.bullet.mail.sp2.yahoo.com ([98.139.91.83]) by magus.postgresql.org with smtp (Exim 4.72) (envelope-from ) id 1RnSVq-0005PU-Gq for pgsql-it-generale@postgresql.org; Wed, 18 Jan 2012 10:13:05 +0000 Received: from [98.139.91.70] by nm13.bullet.mail.sp2.yahoo.com with NNFMP; 18 Jan 2012 10:12:46 -0000 Received: from [98.139.91.4] by tm10.bullet.mail.sp2.yahoo.com with NNFMP; 18 Jan 2012 10:12:46 -0000 Received: from [127.0.0.1] by omp1004.mail.sp2.yahoo.com with NNFMP; 18 Jan 2012 10:12:46 -0000 X-Yahoo-Newman-Property: ymail-3 X-Yahoo-Newman-Id: 873839.32948.bm@omp1004.mail.sp2.yahoo.com Received: (qmail 57405 invoked by uid 60001); 18 Jan 2012 10:12:46 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1326881566; bh=/rIb8jSqpkBpfyZ4w7RGI/so2NDDkH2eDLx3yuiD3Dc=; h=X-YMail-OSG:Received:X-Mailer:References:Message-ID:Date:From:Reply-To:Subject:To:Cc:In-Reply-To:MIME-Version:Content-Type; b=QplWvxQjQQGi2A28hx+yU+SA9NNAk9KC/U1k4BmL+ypurfgotnPzPeIsKcCrtQWnLd9FGyt6g5tDt/rHptXlrS7JWcKXynOHfdxSi9v//vh5LFZwo/HYnuls+gVJ9A822QFAu6bVbqi/ZVjuJFUP9QdXP+NSHBIYHcFzcnFlViQ= DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=X-YMail-OSG:Received:X-Mailer:References:Message-ID:Date:From:Reply-To:Subject:To:Cc:In-Reply-To:MIME-Version:Content-Type; b=zwXQFMrdY8Pt+uzk34u0togHnTrzxcX1YRzoq3l272r1vvmCTfmLOgubumtwr/bfY/kQupY/+4BzcU62G89EW11MDHbxsTdW1VfEZA2Hr08Bb4R2kN0R+ZLPUa/jSxnKNYh11heJGIHAmt2niy6oPFF7HwSEKcM/wZFzJm2fU3U=; X-YMail-OSG: pGHbQlsVM1nsJwikJZV9dKDXoW6DMXU73Z_rqBSiw0xBVWI X5aAvLSql50T_buOPXQWxfH2Y.6jXXr8Z9I7dryoq7BkSPQMeqYK8hBKeOvZ V8udqX.ZZunM0zW8wiRwTIw2B_9SdUqYV5LhTe2w3Z0yX3IyQ209MZD5CbyJ WrTo_qRNQcQ1weiLg2I.4lK4jgOkz5JCPynTL6kW0pq0UDXee.A0iFagkMt_ GUBxwOkoHCqIc5FMZH6712qPrgVpndAWmekjlr7m6MBNvUCkvdFGSBOIyrMs Sj_AomD_XQybDBh8siK6YJbP3AzxpkpeYHYaBh_q0Zu53u21pdVv2.P8KR1S Ekls2cTfqCgHsrPCIpaeBPpnAUl1mCxIdqSq2oaGcqvlF8IwHcettEyN5G5c JrcEmQ2aCGR3YLcRviMyj9FIWdQruSu61UcytKugqK03ZZqisP2LOVI7cYw- - Received: from [195.110.138.53] by web45103.mail.sp1.yahoo.com via HTTP; Wed, 18 Jan 2012 02:12:45 PST X-Mailer: YahooMailWebService/0.8.115.331698 References: <1326453954.52470.YahooMailNeo@web45110.mail.sp1.yahoo.com> Message-ID: <1326881565.57173.YahooMailNeo@web45103.mail.sp1.yahoo.com> Date: Wed, 18 Jan 2012 02:12:45 -0800 (PST) From: barbara cioppa Reply-To: barbara cioppa Subject: Re: problema con autoincremento nextval To: Torello Querci , Alessio Gennari Cc: "pgsql-it-generale@postgresql.org" In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="-1340178888-1198335612-1326881565=:57173" X-Pg-Spam-Score: 0.7 (/) X-Archive-Number: 201201/5 X-Sequence-Number: 225 ---1340178888-1198335612-1326881565=:57173 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Salve ancora,=0Aho aggiornato pgAdmin III alla 1.14.1 , il problema =E8 che= se aggiungo un campo posso metterlo di tipo serial,mentre non posso cambia= re il tipo di ID in nessun modo, n=E8 con l'interfaccia n=E8 con l'sql.=0AQ= uesto non l'ho capito. Inoltre non posso eliminare l'id perch=E8 da quel ca= mpo dipendono diverse tabelle per la referential integrity quindi dovfrei c= ancellare i riferimenti in cascata (che non mi ricordo nemmeno la sintassi)= .=0APerch=E8 non posso cambiare il tipo in serial? Non me lo da come opzion= e sui tipi di dato.=0A=0A=0A=0A________________________________=0A From: To= rello Querci =0ATo: Alessio Gennari =0ACc: barbara cioppa ; "pgsql-it-gener= ale@postgresql.org" =0ASent: Friday, Jan= uary 13, 2012 2:22 PM=0ASubject: Re: [pgsql-it-generale] problema con autoi= ncremento nextval=0A =0A=0A=0A=0A=0AIl giorno 13 gennaio 2012 14:12, Alessi= o Gennari ha scritto:=0A=0ACiao Barbara,=0A>i= nnanzitutto sarebbe importante sapere che versione di postgres stai utilizz= ando, comunque prova a fare cos=EC:=0A>=0A>=0A>ID integer not null default= =A0nextval( "Pratiche"."numID"::regclass)=0A>=0A>=0A>Questa =E8 la sintassi= per il postgres 9.=0A>=0A>=0A>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 =E8 stato invocato. In parole povere= non potrai mai avere uno stesso id in entrambe le tabelle.=0A>=0A>=0ASe pu= =F2 fare e il comportamento =E8 proprio quello da te descritto, ovvero vien= e staccato un ID univoco indipendente dalla tabella dove =E8 stato usato.= =0A=0AEsistono molti casi in cui questo pu=F2 essere utile, per esempio qua= ndo ci sono tipi diversi di "documenti" che risiedono in tabelle diverse e = che devono essere identificati in modo univoco.=0AVero che si pu=F2 fare in= altri modi ma l'uso delle sequence usate in pi=F9 tabelle semplifica molto= la vita.=0AOvviamente il fatto che si possa fare non significa che si debb= a fare.=0A=0ASaluti ---1340178888-1198335612-1326881565=:57173 Content-Type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable
Salve anco= ra,
ho aggiornato pgAdmin III alla 1.14.1 , il probl= ema =E8 che se aggiungo un campo posso metterlo di tipo serial,mentre non p= osso cambiare il tipo di ID in nessun modo, n=E8 con l'interfaccia n=E8 con= l'sql.
Questo non l'ho capito. Inoltre non posso el= iminare l'id perch=E8 da quel campo dipendono diverse tabelle per la refere= ntial integrity quindi dovfrei cancellare i riferimenti in cascata (che non= mi ricordo nemmeno la sintassi).
Perch=E8 non posso= cambiare il tipo in serial? Non me lo da come opzione sui tipi di dato.



From: Torello Querci &l= t;tquerci@gmail.com>
To: Alessio Gennari <alessio.gennari78@gmail.com>
Cc: barbara cioppa <barbara_cioppa@y= ahoo.com>; "pgsql-it-generale@postgresql.org" <pgsql-it-generale@post= gresql.org>
Sent: = Friday, January 13, 2012 2:22 PM
= Subject: Re: [pgsql-it-generale] problema con autoincremento nex= tval

=0A


Il giorno 13 gennaio 2012 14:12, Alessio Gennari <alessio.= gennari78@gmail.com> ha scritto:
=0ACiao Barbara,
innanzitutto sarebbe importante sa= pere che versione di postgres stai utilizzando, comunque prova a fare cos= =EC:

=0A=0A=0A
ID integer not = null default ne= xtval(=0A"Pratiche"."numID"::regclass)
=0A=0A=0A

Qu= esta =E8 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 co= munque il sequence andrebbe sempre in avanti ignorando la tabella da cui = =E8 stato invocato. In parole povere non potrai mai avere uno stesso id in = entrambe le tabelle.
=0A=0A=0A

Se pu= =F2 fare e il comportamento =E8 proprio quello da te descritto, ovvero vien= e staccato un ID univoco indipendente dalla tabella dove =E8 stato usato.

Esistono molti casi in cui questo pu=F2 essere util= e, per esempio quando ci sono tipi diversi di "documenti" che risiedono in = tabelle diverse e che devono essere identificati in modo univoco.
=0A<= div>Vero che si pu=F2 fare in altri modi ma l'uso delle sequence usate in p= i=F9 tabelle semplifica molto la vita.
Ovviamente il fatto che si= possa fare non significa che si debba fare.

=0ASa= luti

=0A


---1340178888-1198335612-1326881565=:57173--