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