RE: Restricciones Foreign Keys

From: "vhr" <vhr(at)relcat(dot)com(dot)ar>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Restricciones Foreign Keys
Date: 2006-10-04 19:47:18
Message-ID: 003b01c6e7ed$f24b62d0$0e2a2a0a@vhrmovil
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Y si probas con el siguiente codigo?

create table public.tabla1
(
id serial not null,
descripcion varchar(32),
primary key (id)
);

create table public.tabla2
(
id serial not null,
descripcion varchar(32),
id_tb1 integer references public.tabla1(id),
primary key (id)
);

alter table public.tabla1
add id_tb2 integer references public.tabla2(id)

insert into public.tabla1
(descripcion) values ('Alguna cosa');

insert into public.tabla2
(descripcion, id_tb1) values ('otra cosa',1);

insert into public.tabla1
(descripcion, id_tb2) values ('otra cosa tambien',1);


si es que comprendi tu duda?
el resultado de las tablas es el siguiente

CREATE TABLE "public"."tabla1" (
"id" SERIAL,
"descripcion" VARCHAR(32),
"id_tb2" INTEGER,
CONSTRAINT "tabla1_pkey" PRIMARY KEY("id"),
CONSTRAINT "tabla1_id_tb2_fkey" FOREIGN KEY ("id_tb2")
REFERENCES "public"."tabla2"("id")
ON DELETE NO ACTION
ON UPDATE NO ACTION
NOT DEFERRABLE
) WITH OIDS;


CREATE TABLE "public"."tabla2" (
"id" SERIAL,
"descripcion" VARCHAR(32),
"id_tb1" INTEGER,
CONSTRAINT "tabla2_pkey" PRIMARY KEY("id"),
CONSTRAINT "tabla2_id_tb1_fkey" FOREIGN KEY ("id_tb1")
REFERENCES "public"."tabla1"("id")
ON DELETE NO ACTION
ON UPDATE NO ACTION
NOT DEFERRABLE
) WITH OIDS;

Espero te fuera útil
_____

De: pgsql-es-ayuda-owner(at)postgresql(dot)org
[mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de juanmi
Enviado el: Miércoles, 04 de Octubre de 2006 05:07 a.m.
Para: pgsql-es-ayuda(at)postgresql(dot)org
Asunto: [pgsql-es-ayuda] Restricciones Foreign Keys

Hola a todos, este es mi primer mensaje a la lista, lo primero gracias por
vuestro tiempo.

Mi problema es el siguiente, me acabo de pasar de mysql a postgres, en
debian la version de mysql no soporta vistas y postgres si, y por un para de
razones mas.......

Tanto en Mysql como en Postgres la creacion de FK la hago sin problemas (mas
facil en postgres), pero el problema me viene con lo siguiente, os pongo un
ejemplo, al crear la tabla empresa esta tabla tiene un campo llamado
director (FK de la tabla empleados) y al crear la tabla empleados, esta
tabla tiene un campo empresa (FK de la tabla empresa), la creacion de estas
dos tablas ya viola las referencias, nn Mysql lo solucionaba de la siguiente
forma:

SET FOREIGN_KEY_CHECKS = 0;

Creacion de tablas e inserccion de campos

SET FOREIGN_KEY_CHECKS = 1;

¿Como lo hago en postgres?

Muchas gracias por vuestro tiempo ;-)

Saludos.

Juanmi

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Carlos Badilla 2006-10-04 19:53:49 Lazarus Postgresql
Previous Message A. Bernardo 2006-10-04 18:24:55 TRANSACCIONES PREGUNTA