| From: | Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec> | 
|---|---|
| To: | Luis A(dot) Zevallos Cárdenas <lzevallos(at)lobosistemas(dot)com> | 
| Cc: | posgres <pgsql-es-ayuda(at)postgresql(dot)org> | 
| Subject: | Re: Problemas con un check | 
| Date: | 2009-05-20 20:49:31 | 
| Message-ID: | 3073cc9b0905201349w412aec9bt84fc845b4fe08706@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-es-ayuda | 
2009/5/20 Luis A. Zevallos Cárdenas <lzevallos(at)lobosistemas(dot)com>:
> 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
>
de donde saca la informacion esa vista? yo pensaria que de la misma
tabla tbl_paciente, si es asi quiza puedes hacer algo como:
CHECK ((paciente_edad < 14 AND paciente_apoderado IS NOT NULL) OR
(paciente_edad >= 14))
lo que segun yo solo permitira edades menores a 14 siempre que el
campo apoderado sea not null y permitira edades >= 14 sin
restriccion...
si el campo edad no sale de esta tabla sino de alguna otra entonces
puedes usar triggers para esto
-- 
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Asesoría y desarrollo de sistemas
Guayaquil - Ecuador
Cel. +59387171157
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Oswaldo Hernández | 2009-05-20 20:56:22 | pk con valores duplicados | 
| Previous Message | Alvaro Herrera | 2009-05-20 20:41:55 | Re: Consulta sobre pg_column_size() |