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