El mié, 20-05-2009 a las 15:25 -0500, 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
> 
> en la vista vw_paciente me da el campo edad
> 
> como podria manejar esto 
> 
> ALTER TABLE "sch_clinica"."tbl_paciente"
>   ADD CONSTRAINT "tbl_paciente_chk" CHECK (case when (select p.edad
> from vw_paciente p where p.cod=paciente_persona_cod) 
> is not null then(case when (select p.edad from vw_paciente p where
> p.cod=paciente_persona_cod)<14
>  then paciente_apoderado is not null end )end);
> 
> Gracias por la ayuda
> 
> P.D. Claro manejar esto con la aplicacion se podria hacer en eso no
> hay problemas....pero queria saber si se puede manejar a travez de la
> base de dato

No me queda claro lo que quieres hacer, pero puedes utilizar un trigger
o una regla que dispare cuando el la edad del paciente sea meyor ... de
14 y actualice en campo apoderado ...


-- 
Gilberto Castillo Martínez
Edificio Beijing. Miramar Trade Center. Etecsa.
La Habana, Cuba.

--
TIP 2: puedes desuscribirte de todas las listas simult�neamente
    (env�a "unregister TuDirecci�nDeCorreo" a [email protected])

Responder a