Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

Next:From: Vicente RocaDate: 2009-10-21 21:57:05
Subject: Cerrar conexion a BD C#
Previous:From: Fernando HeviaDate: 2009-10-21 19:55:03
Subject: RE: [pgsql-es-ayuda] solución de alta disponibilid?==?Windows-1252?Q?ad

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group