Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Reglas para vistas

Estas en el tema de Reglas para vistas en el foro de PostgreSQL en Foros del Web. Hola amigos. Tengo un dilema con las reglas del postgres. Tengo dos tablas por ejemplo persona y clientes. En persona irian datos genericos de personas ...
  #1 (permalink)  
Antiguo 10/10/2007, 20:39
 
Fecha de Ingreso: noviembre-2003
Ubicación: Paraguay
Mensajes: 382
Antigüedad: 20 años, 5 meses
Puntos: 4
Mensaje Reglas para vistas

Hola amigos.

Tengo un dilema con las reglas del postgres.

Tengo dos tablas por ejemplo persona y clientes. En persona irian datos genericos de personas y en clientes los datos de persona más los datos del cliente. Por ejemplo

PERSONAS
id
nombre
telefono
direccion

CLIENTES
personas_id
ruc
cuenta
limite_credito

la idea es crear una vista v_personas_clientes y que ahi se vean los datos completos. y quisiera hacer unas reglas para manejar la vista como una tabla. Agrego el insert como me funciona.

La pregunta es. Que tan eficiente es esto en un sistema multiusuarios? es decir el currval que uso no podria dispararse cuando otro usuario haga otro insert?

VIEW
Código PHP:
CREATE OR REPLACE VIEW "public"."v_personas_juridicas" 
AS
SELECT p.idp.nombrep.telefonop.direccionc.rucc.cuentac.limite_credito
FROM 
(personas p JOIN clientes c ON ((c.personas_id = (p.id)::numeric))); 

RULE
Código PHP:
CREATE OR REPLACE RULE rv_personas_clientes_insert AS
    
ON INSERT TO v_personas_clientes DO INSTEAD 

INSERT INTO personas (idnombretelefonodireccion
  
VALUES (nextval('personas_id_seq'::regclass), new.nombre, new.telefono, new.direccion);

INSERT INTO clientes (idruccuentalimite_credito
  
VALUES (currval('personas_id_seq'::regclass), new.ruc, new.cuenta, new.limite_credito);

); 
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:56.