Re: ¿Se puede poner condicionales a un insert?.

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

In response to

Browse pgsql-es-ayuda by date

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