Received: from magus.postgresql.org (magus.postgresql.org [87.238.57.229]) by mail.postgresql.org (Postfix) with ESMTP id CFCB186A54A for ; Wed, 18 Jan 2012 07:22:26 -0400 (AST) Received: from nm25.bullet.mail.sp2.yahoo.com ([98.139.91.95]) by magus.postgresql.org with smtp (Exim 4.72) (envelope-from ) id 1RnTax-0006TI-CM for pgsql-it-generale@postgresql.org; Wed, 18 Jan 2012 11:22:26 +0000 Received: from [98.139.91.69] by nm25.bullet.mail.sp2.yahoo.com with NNFMP; 18 Jan 2012 11:22:05 -0000 Received: from [98.139.91.16] by tm9.bullet.mail.sp2.yahoo.com with NNFMP; 18 Jan 2012 11:22:05 -0000 Received: from [127.0.0.1] by omp1016.mail.sp2.yahoo.com with NNFMP; 18 Jan 2012 11:22:05 -0000 X-Yahoo-Newman-Property: ymail-3 X-Yahoo-Newman-Id: 325056.66700.bm@omp1016.mail.sp2.yahoo.com Received: (qmail 98481 invoked by uid 60001); 18 Jan 2012 11:22:05 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1326885725; bh=oAM1jF3YQbVk5u1NRDTZ59Q9qI6crWtUFHM88gp8pEk=; 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=SWjmExzl9qkv+qWB831w2r+tfA2FS71r52Bz699XkqypudsA4kYouQfdy21sLiJGEwsKxQvCg7p58rUskExXGmaRCJZDtLp/PHbWrz7oS4turQ/Fp6UzxlKnENkvc/qYKgFgd0OtoADXFevWNCSdrkw3Up8UraJmSFuJ0Te2oTM= 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=pcyPPiEaRV0Vp5yAairQnAtKZT346xC/eBbs/tPHs4tdWntRAwhxWYn5ydbBqtD09lxZxQKnGfJVGWgyxkhyeTB1j1f6QIBWZsN2E64d8zjxTZSRv1UYuybfpjn/U8JfNQeIrE6vQcAYZHgeOjq+lv3LEKRzaAr6QZ18Oj8oD7U=; X-YMail-OSG: iz3Y4OsVM1nnmK15HTesGOLCNt0JTmWmBDNWToRbCRa0uLc HoqAoeN8Lpd.b0PF8Ze_S71ofKn1PaYZkAkfFeTq5eA8qadxH0bHbbEwmirr 7vu3Uslx3HbCgKvtwI74W9FrwV.1EDzWlr7946ufotmGngH9SqG0HXWJe6ZW 08VK.mbGTZ6fkX.IemZvJ8Thm5dChfy.ophde9joZAbBdom_Bo6bhhicACfk 8h0dvt2wuRqcxdOdMirzTKLi.dxGE90wyTQbmUUEqKU645V9QpkS0Typ5pBW Cbq_rFFnuXnBTcStYkHHxjGtWjSMalsBzbqQG5h8DJTUmPoQL_odFj52Hboq ZwSRfwd4Li1fuu1nUAW4DcNRsqGuchrcYWAvnhBHtkZoGLPKbmT_jIfMzGIg Aj9Pymt7Ca8.cojzUpN2f7ajtVZ7_u0.L50NhOmkTKbYPxsclAaLAy1SyWA- - Received: from [195.110.138.53] by web45106.mail.sp1.yahoo.com via HTTP; Wed, 18 Jan 2012 03:22:05 PST X-Mailer: YahooMailWebService/0.8.115.331698 References: <1326453954.52470.YahooMailNeo@web45110.mail.sp1.yahoo.com> <1326881565.57173.YahooMailNeo@web45103.mail.sp1.yahoo.com> <1326882214.89857.YahooMailNeo@web45111.mail.sp1.yahoo.com> Message-ID: <1326885725.87882.YahooMailNeo@web45106.mail.sp1.yahoo.com> Date: Wed, 18 Jan 2012 03:22:05 -0800 (PST) From: barbara cioppa Reply-To: barbara cioppa Subject: Re: problema con autoincremento nextval To: Alessio Gennari Cc: Torello Querci , "pgsql-it-generale@postgresql.org" In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="-253335423-136012422-1326885725=:87882" X-Pg-Spam-Score: -2.0 (--) X-Archive-Number: 201201/10 X-Sequence-Number: 230 ---253335423-136012422-1326885725=:87882 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Grazie ragazzi. Era l'apice il problema. Ora funziona! Almeno questa =E8 si= stemata :)))=0A=0A=0A=0A________________________________=0A From: Alessio G= ennari =0ATo: barbara cioppa =0ACc: Torello Querci ; "pgsql-it-generale@pos= tgresql.org" =0ASent: Wednesday, January= 18, 2012 11:49 AM=0ASubject: Re: [pgsql-it-generale] problema con autoincr= emento nextval=0A =0A=0AHa ragione lui. Il tipo serial non esiste nel DBMS,= =E8 solo un tipo "virtuale" che sta nel pgAdmin che se viene selezionato t= i crea una colonna di tipo int con relativo sequence.=0A=0APer fare l'alter= devi usare un'altra sintassi che dovrebbe essere questa:=0A=0AALTER table = "Pratiche".pratica =0AALTER column id SET default nextval('nome_schema.nome= _sequence'::regclass)=0A=0A=0ASe per caso non trovi il sequence dopo la cre= azione della prima tabella con il campo serial, prova ad inserire una riga = e vedrai che comparir=E0 il sequence.=0A=0APer il postgres ti devo dire che= all'inizio pu=F2 dare un po' di grattacapi perch=E9 =E8 molto simile alla = filosofia di Oracle, ma alla lunga devo proprio dire che d=E0 un sacco di s= oddisfazioni.=0A=0AFammi sapere.=0A=0ACiao.=0A=0AAlessio=0A=0A=0A2012/1/18 = barbara cioppa =0A=0Ain teoria con=0A>ALTER table= "Pratiche".pratica=0A>ALTER COLUMN id type serial;=0A>dovrebbe funzionare = ma mi dice che il tipo serial non esiste!=0A>Inizio a pensare di cambiare D= BMS :((=0A>=0A>=0A>=0A>________________________________=0A> From: Alessio G= ennari =0A>To: barbara cioppa =0A>Cc: Torello Querci ; "pgsql-it-generale@p= ostgresql.org" =0A>Sent: Wednesday, Janu= ary 18, 2012 11:15 AM=0A>=0A>Subject: Re: [pgsql-it-generale] problema con = autoincremento nextval=0A> =0A>=0A>=0A>Credo sia una limitazione del pgAdmi= nIII.=0A>=0A>=0A>L'unico modo per cambiare quel campo =E8 un alter. Per=F2,= se quel campo =E8 oggetto di una foreign key proveniente da un'altra tabel= la, credo che l'alter non possa funzionare.=0A>=0A>=0A>=0A>=0A>2012/1/18 ba= rbara cioppa =0A>=0A>Salve ancora,=0A>>ho aggiorn= ato pgAdmin III alla 1.14.1 , il problema =E8 che se aggiungo un campo poss= o metterlo di tipo serial,mentre non posso cambiare il tipo di ID in nessun= modo, n=E8 con l'interfaccia n=E8 con l'sql.=0A>>Questo non l'ho capito. I= noltre non posso eliminare l'id perch=E8 da quel campo dipendono diverse ta= belle per la referential integrity quindi dovfrei cancellare i riferimenti = in cascata (che non mi ricordo nemmeno la sintassi).=0A>>Perch=E8 non posso= cambiare il tipo in serial? Non me lo da come opzione sui tipi di dato.=0A= >>=0A>>=0A>>=0A>>=0A>>=0A>>________________________________=0A>> From: Tore= llo Querci =0A>>To: Alessio Gennari =0A>>=0A>>Cc: barbara cioppa ; "pgsql-i= t-generale@postgresql.org" =0A>>Sent: Fr= iday, January 13, 2012 2:22 PM=0A>>=0A>>Subject: Re: [pgsql-it-generale] pr= oblema con autoincremento nextval=0A>> =0A>>=0A>>=0A>>=0A>>=0A>>=0A>>Il gio= rno 13 gennaio 2012 14:12, Alessio Gennari ha= scritto:=0A>>=0A>>Ciao Barbara,=0A>>>innanzitutto sarebbe importante saper= e che versione di postgres stai utilizzando, 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 ta= belle differenti non so se abbia senso, io personalmente non l'ho mai fatto= . Se si potesse fare comunque il sequence andrebbe sempre in avanti ignoran= do la tabella da cui =E8 stato invocato. In parole povere non potrai mai av= ere uno stesso id in entrambe le tabelle.=0A>>>=0A>>>=0A>>Se pu=F2 fare e i= l comportamento =E8 proprio quello da te descritto, ovvero viene staccato u= n ID univoco indipendente dalla tabella dove =E8 stato usato.=0A>>=0A>>=0A>= >Esistono molti casi in cui questo pu=F2 essere utile, per esempio quando c= i sono tipi diversi di "documenti" che risiedono in tabelle diverse e che d= evono essere identificati in modo univoco.=0A>>Vero che si pu=F2 fare in al= tri modi ma l'uso delle sequence usate in pi=F9 tabelle semplifica molto la= vita.=0A>>Ovviamente il fatto che si possa fare non significa che si debba= fare.=0A>>=0A>>=0A>>Saluti=0A>>=0A>>=0A>>=0A>>=0A>=0A>=0A> ---253335423-136012422-1326885725=:87882 Content-Type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable
Grazie rag= azzi. Era l'apice il problema. Ora funziona! Almeno questa =E8 sistemata :)= ))



From: Alessio G= ennari <alessio.gennari78@gmail.com>
To: barbara cioppa <barbara_cioppa@yahoo.com> Cc: Torello Querci <t= querci@gmail.com>; "pgsql-it-generale@postgresql.org" <pgsql-it-gener= ale@postgresql.org>
Sent: Wednesday, January 18, 2012 11:49 AM
Subject: Re: [pgsql-it-generale] problema con autoincrement= o nextval

=0A
Ha ragione lui. Il tipo serial non esiste nel DBMS, =E8 solo un tipo "= virtuale" che sta nel pgAdmin che se viene selezionato ti crea una colonna = di tipo int con relativo sequence.
=0A=0A
Per fare= l'alter devi usare un'altra sintassi che dovrebbe essere questa:

=0A=0A
ALTER table "Pratiche".pratica=0A
ALTER column id SET default nextval('nom= e_schema.nome_sequence'::regclass)

=0A=0A

Se per caso non trovi il se= quence dopo la creazione della prima tabella con il campo serial, prova ad = inserire una riga e vedrai che comparir=E0 il sequence.
=0A=0A<= div>
Per il postgres ti devo dire che all'inizio pu=F2 dare un po= ' di grattacapi perch=E9 =E8 molto simile alla filosofia di Oracle, ma alla= lunga devo proprio dire che d=E0 un sacco di soddisfazioni.
= =0A=0A

Fammi sapere.
=0A=0A

C= iao.

Alessio

=0A=0A
2012/1/18 barbara cioppa <= ;barbara_cioppa@yahoo.com>
=0A=0A
in teoria con
=0A=0AALTER table "Pratiche".pratica
ALTER COLUMN id t= ype serial;
dovrebbe funzionare ma mi dice che il tipo serial non= esiste!
Inizio a pensare di cambiare DBMS :((
=0A=0A
<= div style=3D"font-size:12pt;">
=0A=0A Cc: Torello Qu= erci <tquerci@gmail.com>; "pgsql-it-gener= ale@postgresql.org" <pgsql-it-generale@postgresql.org>
=0A=0A Sent: Wednesday, January 18, 2012= 11:15 AM

Subject: Re: [pgsql-it-generale] problema con autoinc= remento nextval
=0A=0A

=0A
Credo sia una li= mitazione del pgAdminIII.

=
L'unico modo per cambia= re quel campo =E8 un alter. Per=F2, se quel campo =E8 oggetto di una foreig= n key proveniente da un'altra tabella, credo che l'alter non possa funziona= re.
=0A=0A=0A=0A


2012/1/18 barbara cioppa <barbara_cioppa@yahoo.com>= ;
=0A=0A
=0A=0A
= Salve ancora,
ho aggiornato pgAdmin III alla 1= .14.1 , il problema =E8 che se aggiungo un campo posso metterlo di tipo ser= ial,mentre non posso cambiare il tipo di ID in nessun modo, n=E8 con l'inte= rfaccia n=E8 con l'sql.
=0A=0A=0A=0A
Questo non l'ho = capito. Inoltre non posso eliminare l'id perch=E8 da quel campo dipendono d= iverse tabelle per la referential integrity quindi dovfrei cancellare i rif= erimenti in cascata (che non mi ricordo nemmeno la sintassi).
= =0A=0A=0A=0A
Perch=E8 non posso cambiare il tipo in serial? Non m= e lo da come opzione sui tipi di dato.


=0A=0A

=0A


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

=0A=0A=0A=0A=0A=0A=0A
ID= integer not null default nextval(=0A"Pratic= he"."numID"::regclass)
=0A=0A=0A

Questa =E8 la sintassi per il postgres 9.

Per qu= anto riguarda l'utilizzo dello stesso sequence su due tabelle differenti no= n so se abbia senso, io personalmente non l'ho mai fatto. Se si potesse far= e comunque il sequence andrebbe sempre in avanti ignorando la tabella da cu= i =E8 stato invocato. In parole povere non potrai mai avere uno stesso id i= n entrambe le tabelle.
=0A=0A=0A=0A=0A=0A=0A

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

Esistono molti casi in cui questo pu=F2= essere utile, per esempio quando ci sono tipi diversi di "documenti" che r= isiedono in tabelle diverse e che devono essere identificati in modo univoc= o.
=0A=0A=0A=0A=0A
Vero che si pu=F2 fare in altri modi ma l'uso d= elle sequence usate in pi=F9 tabelle semplifica molto la vita.
Ov= viamente il fatto che si possa fare non significa che si debba fare.
<= div>
=0A=0A=0A=0A=0ASaluti

=0A



=0A



=0A

---253335423-136012422-1326885725=:87882--