From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Miguel <mvillagomez(at)sayab(dot)com(dot)mx> |
Cc: | Postgres <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Check |
Date: | 2006-08-14 21:02:07 |
Message-ID: | 20060814210207.GA5605@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Miguel escribió:
>
>
> Tengo esta duda yo tengo estas dos tablas.
>
>
>
> CREATE TABLE empleado(id_empleado SERIAL, paterno varchar, materno varchar,
> nombre varchar, fecha_ingreso date, puesto, varchar, sueldo_mensual float,
> activo boolean NOT NULL, PRIMARY KEY(nombre, paterno, materno));
>
>
>
> CREATE TABLE gastos_empleado(id_gasto SERIAL, no_poliza integer NOT NULL,
> id_empleado integer references empleado(id_empleado) NOT NULL, fecha date
> NOT NULL, monto float NOT NULL, id_proyecto integer references
> proyecto(id_proyecto), PRIMARY KEY(no_poliza));
>
>
>
> Cómo le puedo indicar a la tabla de gastos_empleado que solo permita la
> captura de empleados cuya clave activo en la tabla empleados sea TRUE?
Usa un trigger. Al insertar debes verificar que la condicion se cumpla.
Debes pensar que sucede si el valor "activo" cambia para un empleado que
tiene referencias en la tabla gastos_empleado. Quizas necesites un
trigegr en esa otra tabla tambien.
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
From | Date | Subject | |
---|---|---|---|
Next Message | Miguel | 2006-08-14 21:17:05 | Foreing key |
Previous Message | Miguel | 2006-08-14 19:24:21 | Check |