Re: Problemas con un check

From: Luis A(dot) Zevallos Cárdenas <lzevallos(at)lobosistemas(dot)com>
To: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: posgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Problemas con un check
Date: 2009-05-20 22:11:43
Message-ID: ae5556ce0905201511p722ad6cct850f855459579f7b@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola a todos

A ver no me deje entender bien creo

tengo una tabla que es tbl_persona en la cual tengo un campo fecha de
nacimiento
y cree una vista vw_persona en la cual con una funcion tengo mi campo edad

ahora en la tabla tbl_paciente
se relaciona con la vista vw_persona atravez del codigo osea
vw_persona.cod=tbl_paciente.paciente_persona_cod

LA RESTRICCION
Bien ahora lo que deseo es si un paciente es menor de 14 años entonces ese
campo
paciente_apoderado NO DEBE DE SER NULO y tendria que llenarse y hacer una
referencia a un codigo de la tabla persona

ya si un paciente es mayor de 14 años entonces PUEDE SER NULO

Gracias por responder

P.D. Probare con un trigger creo que con un before on insert funcionaria(Si
tienen otra idea bienvenida)

El 20 de mayo de 2009 16:04, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>escribió:

> Luis A. Zevallos Cárdenas escribió:
> > Hola a todos
> >
> > Una consulta con un check o como lo puedo manejar
> >
> > tengo una tabla
> > CREATE TABLE tbl_paciente
> > (
> > paciente_persona_cod integer NOT NULL, -- Codigo de referencia hacia la
> > tabla persona
> > paciente_hstclinica_cod integer, -- Codigo que hace referencia a la
> tabla
> > de historia clinica
> > paciente_apoderado integer, -- Codigo de referencia a la tabla persona
> > para identificar al apoderado solo si es < de 14 años
> > )
> >
> > Este paciente_apoderado como dice no tiene que ser null si la edad del
> > paciente es menor a 14
>
> No tiene mucho sentido esto -- ¿cómo vas a hacer que se vuelva NULL
> cuando el paciente cumpla 14 años? Creo que la mejor manera de manejar
> esto es en un trigger que exija que el paciente tenga apoderado al
> momento de insertar, no una restricción en la columna misma.
>
> (Detalle de implementación: no están permitidas las subconsultas en una
> restricción CHECK. Obviamente puedes hacer trampa y ponerla en una
> función)
>
> --
> Alvaro Herrera
> http://www.amazon.com/gp/registry/5ZYLFMCVHXC
> "La libertad es como el dinero; el que no la sabe emplear la pierde"
> (Alvarez)
>

--
Luis Zevallos
DBA Administrador de DB & SRVR
Lobo Sistemas S.A.C
tel: +5154958310833
http://www.lobosistemas.com

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2009-05-20 22:12:58 Re: Sobre la UNION en postgre!!!!
Previous Message Rodolfo Vegas 2009-05-20 21:57:56 Sobre la UNION en postgre!!!!