Re: [pgsql-es-ayuda] Validación de campos

From: Sergio Valdes Hurtado <svh(dot)pgsql(at)gmail(dot)com>
To: Martín Marqués <martin(at)2ndquadrant(dot)com>
Cc: Lista PostgreSql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: [pgsql-es-ayuda] Validación de campos
Date: 2014-05-26 18:52:47
Message-ID: CA+TBOYKfi9q_wuazBt8aGYVV=AF=UKpNkUKXehf4mz5cxGdZwQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Estimados,
la verificación del año me parce que no está bien, pero entendí la idea y
debería ser :
ALTER TABLE tabla_pagos ADD CONSTRAINT verif_info_pago CHECK (ano_info <=
ano_pago);

Sin embargo, la verificación del mes_info es distinta, ya que debe validar
que sea menor que mes_pago, sólo si el ano_info es igual al ano_pago, si
ano_info es menor, mes_info puede tomar cualquier valor.

En definitiva lo que se debe comprobar es que no se pague algo que
obviamente no esté informado en meses previos. Un ejemplo, si estoy en Mayo
de 2014 (mes pago 5, año pago 2014) puedo pagar cualquier mes previo del
2014, y los meses informados podrian ser 1, 2, 3 ó 4 (todos los meses info
son menor que 5).
Pero si los meses de información son de años anteriores (Ej. 2012) pueden
tomar cualquier valor del 1 al 12 y en ese caso si pueden ser iguales o
mayores que mes pago 5 (Ej informacion de octubre 2012 a pagar en mayo de
2014, entonces mes info 10 y mes pago 5)

Saludos,

El 26 de mayo de 2014, 13:32, Martín Marqués <martin(at)2ndquadrant(dot)com>escribió:

> El día 26 de mayo de 2014, 14:07, Sergio Valdes Hurtado
> <svh(dot)pgsql(at)gmail(dot)com> escribió:
> > Estimados,
> > tengo una tabla de la cual se reciben datos externos mediante cargas
> masivas
> > de datos (es un legacy y no podemos cambiar los formatos) que tiene los
> > siguientes campos:
> > run (int4)
> > ano_pago (int2)
> > mes_pago (int2)
> > ano_info (int2)
> > mes_info (int2)
>
> Tampoco pueden cambiar los nombres de las columnas de las tablas? Ano?
>
> > Necesito hacer una validación tal que:
> > * ano_info no debe ser mayor que ano_pago
>
> ALTER TABLE tabla_pagos ADD CONSTRAINT verif_info_pago CHECK (ano_info
> > ano_pago);
>
> > * mes_info debe ser menor que mes_pago si ano_pago = ano_info
>
> Idem anterior, pero con estos otros campos.
>
>
>
> --
> Martín Marqués http://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Training & Services
>

--
Sergio Valdés H.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Martín Marqués 2014-05-26 18:59:44 Re: Validación de campos
Previous Message Guillermo E. Villanueva 2014-05-26 18:44:02 Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] explain - esperaba el uso de índices