From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
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 21:04:03 |
Message-ID: | 20090520210403.GH5368@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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)
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2009-05-20 21:06:57 | Re: pk con valores duplicados |
Previous Message | Oswaldo Hernández | 2009-05-20 20:56:22 | pk con valores duplicados |