Re: fk con parte de un campo

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Oswaldo Hernández <listas(at)soft-com(dot)es>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: fk con parte de un campo
Date: 2006-08-02 19:32:39
Message-ID: 20060802193239.GG6019@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Oswaldo Hernández escribió:
> Hola a todos,
>
> Estoy intentando crear una fk con parte de un campo:
>
>
> CREATE TABLE pruebas.t1
> (
> c1 varchar(3) NOT NULL,
> CONSTRAINT pk_t1 PRIMARY KEY (c1)
> )
> WITHOUT OIDS;
> ALTER TABLE pruebas.t1 OWNER TO postgres;
>
>
> CREATE TABLE pruebas.t2
> (
> c2 varchar(10) NOT NULL,
> CONSTRAINT pk_t2 PRIMARY KEY (c2)
> )
> WITHOUT OIDS;
> ALTER TABLE pruebas.t2 OWNER TO postgres;
>
>
> soft-com=# ALTER TABLE pruebas.t2 ADD CONSTRAINT fk_t2_t1 FOREIGN KEY
> (substr(c2,1,3)) REFERENCES pruebas.t1 (c1) ON UPDATE RESTRICT ON DELETE
> RESTRICT;
>
> ERROR: syntax error at or near "(" en el carácter 67
> LINEA 1: ...bas.t2 ADD CONSTRAINT fk_t2_t1 FOREIGN KEY (substr(c2,1,3)) ...
> ^
>
> ¿Es realmente un error de sintaxis? ó ¿no es posible hacer una fk de esta
> forma?

Creo que la primera forma normal dice que no debes tener campos
multivaluados. Te sugiero separar c1 en varias columnas.

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Miguel de la Fuente 2006-08-02 20:57:36 Re: Desesperado con postgis
Previous Message Sebastián Villalba 2006-08-02 15:35:31 Re: Necesito buscar duplicados