Re: Ayuda con Check

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Marco Aurelio Sotelo Figueroa <masotelof(at)yahoo(dot)com(dot)mx>
Cc: Ayuda Postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Ayuda con Check
Date: 2005-04-28 03:25:52
Message-ID: 20050428032552.GA26819@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Wed, Apr 27, 2005 at 09:17:03PM +0200, Marco Aurelio Sotelo Figueroa wrote:

Hola

> &nbsp;&nbsp;&nbsp; constraint pk_cliente primary key (id_cliente),<br>
> &nbsp;&nbsp;&nbsp; constraint chk_cliente_rfc check (rfc like
> '[A-Z][A-Z][A-Z][A-Z][0-9][0-9][0-9][0-9][0-9][0-9][A-Z][A-Z][0-9]' or
> rfc like
> '[A-Z][A-Z][A-Z][0-9][0-9][0-9][0-9][0-9][0-9][A-Z][A-Z][0-9]'),<br>
> &nbsp;&nbsp;&nbsp; constraint chk_cliente_curp check (curp like
> '[A-Z][A-Z][A-Z][A-Z][0-9][0-9][0-9][0-9][0-9][0-9][H,M][A-Z][A-Z][A-Z][A-Z][A-Z][0-9][0-9]'),<br>
> &nbsp;&nbsp;&nbsp; constraint fk_cliente_ciudad foreign key (ciudad) references ciudad
> (id_ciudad));</font><br>

Hum, esas expresiones regulares parecen excepcionalmente mal construidas ...
por que no usan cuantificadores {M,N} ? Es mucho mas limpio y facil de
leer. Sobre todo, el uso de (rfc like expr1 OR rfc like expr2) donde
claramente podrias usar una sola expresion me parece, por decirlo de
algun modo suave, poco brillante.

Lo otro que me merece dudas es que tengas una clase de caracteres [H,M]
ahi ... no sera [H-M] ? Si no entiendes a que me refiero, por favor
remitete al libro Mastering Regular Expressions que ya mencione o a tu
fuente favorita de iluminacion sobre regexes.

--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"Escucha y olvidarás; ve y recordarás; haz y entenderás" (Confucio)

In response to

  • Ayuda con Check at 2005-04-27 19:17:03 from Marco Aurelio Sotelo Figueroa

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message ramirex 2005-04-28 03:38:51 manejadores
Previous Message Alvaro Herrera 2005-04-27 23:59:08 Re: numeric vs real