Re: Check

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

In response to

  • Check at 2006-08-14 19:24:21 from Miguel

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Miguel 2006-08-14 21:17:05 Foreing key
Previous Message Miguel 2006-08-14 19:24:21 Check