Usar CASE dentro de la creacion de una regla

From: "Ing(dot) Marcos Ortí­z Valmaseda" <mlortiz(at)uci(dot)cu>
To: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Usar CASE dentro de la creacion de una regla
Date: 2009-10-21 20:52:30
Message-ID: 4ADF748E.80204@uci.cu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Esto no se puede hacer todavia ?
O sea que yo pueda hacer una regla generica para varias operaciones con
CASE. Un ejemplo practico de esto, lo podriamos ver por ejemplo cuando
estamos haciendo un particionado de tablas, y tenemos que crear para
cada tabla hija una regla de insercion cuando lo que cambie es un solo
parametro. Si esto se pudiera hacer, seria muy muy bien visto.

Aqui les va un ejemplo practico:

//////////////////////////////////////////////////

|-- Regla para produccion_odin
CREATE RULE produccion_odin_insert_rule AS
ON INSERT TO produccion WHERE
( id_modelo = 1 )
DO INSTEAD
INSERT INTO produccion_odin VALUES ( NEW.id,
NEW.no_serie,
NEW.id_modelo,
NEW.id_personal,
NEW.fecha_fabricacion,
NEW.fecha_salida);

-- Regla para produccion_delta01
CREATE RULE produccion_delta01_insert_rule AS
ON INSERT TO produccion WHERE
( id_modelo = 2 )
DO INSTEAD
INSERT INTO produccion_delta01 VALUES ( NEW.id,
NEW.no_serie,
NEW.id_modelo,
NEW.id_personal,
NEW.fecha_fabricacion,
NEW.fecha_salida);

-- Regla para produccion_delta01plus
CREATE RULE produccion_delta01plus_insert_rule AS
ON INSERT TO produccion WHERE
( id_modelo = 3 )
DO INSTEAD
INSERT INTO produccion_delta01plus VALUES ( NEW.id,
NEW.no_serie,
NEW.id_modelo,
NEW.id_personal,
NEW.fecha_fabricacion,
NEW.fecha_salida);

-- Regla para produccion_delta02
CREATE RULE produccion_delta02_insert_rule AS
ON INSERT TO produccion WHERE
( id_modelo = 4 )
DO INSTEAD
INSERT INTO produccion_delta02 VALUES ( NEW.id,
NEW.no_serie,
NEW.id_modelo,
NEW.id_personal,
NEW.fecha_fabricacion,
NEW.fecha_salida);

Aqui creamos una regla por cada una. Si tuvieramos esa posibilidad de
usar CASE WHEN id_modelo = 2

WHEN id_modelo = 3
y asi sucesivamente, seria bastante provechoso.

Saludos
|

--
"DBAs must implement decisions based on the best fit of application, DBMS, and platform
...........for that reason I use BSD + PostgreSQL + Linux.........................."

Ing. Marcos Luís Ortíz Valmaseda
Centro de Tecnologías de Almacenamiento y Anális de Datos (CENTALAD)
Universidad de las Ciencias Informáticas

Linux User # 418229

http://www.freebsd.org
http://www.openbsd.org
http://www.postgresql-es.org
http://www.postgresql.org
http://www.planetpostgresql.org

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Vicente Roca 2009-10-21 21:57:05 Cerrar conexion a BD C#
Previous Message Fernando Hevia 2009-10-21 19:55:03 RE: [pgsql-es-ayuda] solución de alta disponibilidad