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