Ayuda con foreign key (me estoy volviendo loco).

From: Pablo Braulio <brulics(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Ayuda con foreign key (me estoy volviendo loco).
Date: 2006-02-23 15:59:19
Message-ID: 200602231659.22881.brulics@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola a todos.

Llevo toda la tarde intentando solucionar una cosa que en teoría es muy fácil,
pero no se si es que mi mente ya no da mas de si, o hay algo que no he
entendido.

Tengo definidas dos tablas.

\d empresas
Tabla «public.empresas»
Columna | Tipo | Modificadores
-----------+-----------------------+-------------------------------------------------------
id | integer | not null default
nextval('empresas_id_seq'::regclass)
nombre | character varying(40) | not null
nick | character varying(6) | not null
cod_post | character(5) | not null
poblacion | character varying(50) | not null
provincia | character varying(50) | not null
cif | character(9) | not null
direccion | character varying(80) |
rev_acc | boolean | default false
Índices:
«empresas_pkey» PRIMARY KEY, btree (nick)
«cid_idx» UNIQUE, btree (cif)
«direccion_idx» UNIQUE, btree (direccion)
«empresas_id_key» UNIQUE, btree (id)

\d conf_rev_accesos;
Tabla «public.conf_rev_accesos»
Columna | Tipo | Modificadores
---------+-----------------------+---------------------------------------------------------------
id | integer | not null default
nextval('conf_rev_accesos_id_seq'::regclass)
empresa | character varying(6) | not null
resumen | character varying(60) | not null
Índices:
«conf_rev_accesos_pkey» PRIMARY KEY, btree (id)
Restricciones de llave foránea:
«conf_rev_accesos_empresa_fkey» FOREIGN KEY (empresa) REFERENCES
empresas(nick) ON UPDATE CASCADE ON DELETE CASCADE

Lo que trato de hacer es insertar datos en la primera (empresas) y luego en la
segunda tabla. Pero me da siempre error en la llave foránea de esta segunda.

Los datos existen en la tabla empresa:

SELECT * from empresas where id=29;
id | nombre | nick | cod_post | poblacion | provincia | cif
| direccion | rev_acc
----+-------------------+------+----------+------------+-----------+-----------+-----------+---------
29 | empresa de prueba | pru | 12345 | castellon | castellon | 12344154
| mayor | t
(1 fila)

Pero lo curioso es que si intento hacer un select por el campo "nick", no
muestra nada.

SELECT * from empresas where nick = 'pru';
id | nombre | nick | cod_post | poblacion | provincia | cif | direccion |
rev_acc
----+--------+------+----------+-----------+-----------+-----+-----------+---------
(0 filas)

Cuando intento insertar en la segunda tabla, me produce el error:

Query failed: ERROR: inserci�n o actualizaci�n en la tabla �conf_rev_accesos�
viola la llave for�nea �conf_rev_accesos_empresa_fkey� DETAIL: La llave
(empresa)=(pru) no est� presente en la tabla �empresas�.

¿Alguien podría decirme que falla?.
--
Saludos.
Pablo
------------
Jabber: bruli(at)myjabber(to)net
Fingerprint: 944D 10DA 4C10 08D1 574D 4B48 3BC1 CEF7 F222 EB1D

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2006-02-23 16:02:18 Re: Ayuda con foreign key (me estoy volviendo loco).
Previous Message Cristian Saavedra 2006-02-23 14:49:59 Re: Indicar la fila