| 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: | Whole Thread | Raw Message | 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++ |