Thread: PK with an expression in field list
Hi:
I need create a PK for a table.
This PK has 3 fields.
PK is : CONSTRAINT ff_navios PRIMARY KEY ( idempresa, idarmador, UPPER( nome ) )
But seems not work.
I have and other way to do this ?
If this fields are not null and i create a unique index in place off pk, i have the same effect ?
Alejandro Michelin Salomon
Porto Alegre
Brasil.
--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.7.0/346 - Release Date: 23/5/2006
Alejandro Michelin Salomon ( Adinet ) wrote: > Hi: > > I need create a PK for a table. > This PK has 3 fields. > PK is : CONSTRAINT ff_navios PRIMARY KEY ( idempresa, idarmador, UPPER( > nome ) ) > But seems not work. This is a useless error report ;) You need to provide the error message you get. Usually this error message says in plain english (or even plain spain or something ;) what the problem is anyway :-) Ah yes, you should use (UPPER(nome)) in the place you wrote UPPER(nome) > I have and other way to do this ? > If this fields are not null and i create a unique index in place off pk, > i have the same effect ? What is the desired effect? PK is usually implemented as unique index anyway. ... > > > -- > No virus found in this outgoing message. > Checked by AVG Free Edition. > Version: 7.1.394 / Virus Database: 268.7.0/346 - Release Date: 23/5/2006 > > > ------------------------------------------------------------------------ > > No virus found in this outgoing message. > Checked by AVG Free Edition. > Version: 7.1.394 / Virus Database: 268.7.0/346 - Release Date: 23/5/2006 > I'd get rid of those messages. They are useless anyway. Regards Tino
"Alejandro Michelin Salomon \( Adinet \)" <alejmsg@adinet.com.uy> writes: > I need create a PK for a table. > This PK has 3 fields. > PK is : CONSTRAINT ff_navios PRIMARY KEY ( idempresa, idarmador, UPPER( nome > ) ) > But seems not work. You can't define a primary key on an expression. The SQL standard says so, and even if we wanted to generalize the standard here, we'd have a bit of a problem with how it'd show up in the information_schema. You can, however, create a unique index over those values and get pretty much the same effect. regards, tom lane
Hi : I will create a unique index, and make this fiels not null. Thanks for the reply. Alejandro Michelin Salomon -->-----Mensagem original----- -->De: Tom Lane [mailto:tgl@sss.pgh.pa.us] -->Enviada em: quarta-feira, 24 de maio de 2006 16:45 -->Para: Alejandro Michelin Salomon ( Adinet ) -->Cc: Pgsql-General -->Assunto: Re: [GENERAL] PK with an expression in field list --> --> -->"Alejandro Michelin Salomon \( Adinet \)" --><alejmsg@adinet.com.uy> writes: -->> I need create a PK for a table. -->> This PK has 3 fields. -->> PK is : CONSTRAINT ff_navios PRIMARY KEY ( idempresa, idarmador, -->> UPPER( nome -->> ) ) -->> But seems not work. --> -->You can't define a primary key on an expression. The SQL -->standard says so, and even if we wanted to generalize the -->standard here, we'd have a bit of a problem with how it'd -->show up in the information_schema. --> -->You can, however, create a unique index over those values -->and get pretty much the same effect. --> --> regards, tom lane --> --> -->-- -->No virus found in this incoming message. -->Checked by AVG Free Edition. -->Version: 7.1.394 / Virus Database: 268.7.0/346 - Release -->Date: 23/5/2006 --> --> -->-- -->No virus found in this incoming message. -->Checked by AVG Free Edition. -->Version: 7.1.394 / Virus Database: 268.7.0/346 - Release -->Date: 23/5/2006 --> --> -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.7.0/346 - Release Date: 23/5/2006 -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.7.0/346 - Release Date: 23/5/2006