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
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 |