From: | Juan Martínez <jeugenio(at)umcervantes(dot)cl> |
---|---|
To: | Pablo Braulio <brulics(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org, Oswaldo Hernández <listas(at)soft-com(dot)es> |
Subject: | Re: ¿Se puede poner condicionales a un insert?. |
Date: | 2006-03-23 23:19:58 |
Message-ID: | 1143155998.5884.45.camel@localhost.localdomain |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El jue, 23-03-2006 a las 20:31 +0100, Pablo Braulio escribió:
> > Si funciona!
> >
> No funciona. Oooohhhhhh!!!!!
Es la idea...
Yo solo la desarrolle mas.
Me quedo dando vuelta el tema, dado que tengo una necesidad similar
justo hoy!
Otra manera de controlar esto es con reglas (CREATE RULE). Por ejemplo:
CREATE TABLE empresas (
id SERIAL PRIMARY KEY,
nombre TEXT NOT NULL,
activa BOOL NOT NULL
);
CREATE TABLE empleados (
id SERIAL PRIMARY KEY,
nombre TEXT NOT NULL,
id_empresa INTEGER NOT NULL
);
CREATE RULE id_de_empresa AS
ON INSERT TO empleados
WHERE new.id_empresa NOT IN (SELECT id
FROM empresas
WHERE activa)
DO INSTEAD NOTHING;
Al momento de hacer una insercion sobre la tabla empleados, y el
id_empresa no esta en la lista segun:
select id from empresas where activa
entonces no hace nada, y devuelve
INSERT 0 0
y por ende no inserta. No se como generar un error, cosa que quede claro
que no se inserto!
Atte.
Juan Martinez
Depto. Inf.
UMC
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2006-03-23 23:30:50 | Re: Postgres - C++ |
Previous Message | Miguel Angel | 2006-03-23 23:11:05 | RE: Postgres - C++ |