| From: | iescriva <iescriva(at)gmail(dot)com> |
|---|---|
| To: | Fevis Koste <parapostgres(at)gmail(dot)com> |
| Cc: | jlcambero <jlcambero(at)emergya(dot)es>, pgsql-es-ayuda(at)postgresql(dot)org |
| Subject: | Re: Evaluar una cadena de caracteres para un Check |
| Date: | 2007-12-04 20:44:01 |
| Message-ID: | 4755BC11.1050409@gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-es-ayuda |
Fevis Koste wrote:
> Gracias jlcambero por tu aporte, pero quizás no me manifesté de la forma
> correcta.
> Lo que necesito es poder insertar en un campo varchar(1) uno de los
> caracteres definidos en esa cadena, o sea, es válido sólo uno de esos
> caracteres no la cadena completa.
> cadena =varchar(1)
>
> El día 4/12/07, jlcambero <jlcambero(at)emergya(dot)es> escribió:
>>> El Martes, 4 de Diciembre de 2007 19:45, Fevis Koste escribió:
>>> Saludos a l(at)s lister(at)s
>>> He buscado en todo el foro y nada me hace referencia a este caso, pero
>> sé
>>> que existe la forma de hacerlo
>>> Necesito crear un Check en una tabla para poder evaluar las posibles
>>> entradas, la cadena es 'AKLOP149" y debo controlar que sean esos
>>> caracteres, cómo evaluo esa cadena sin tener que compararla 1 a 1 en el
>>> campo. Gracias de ante manos
>> te refieres a algo asi:
>>
>>
>> aemprende=# create table pruebas (cadena varchar check (cadena
>> IN('AKLOP149', 'OTRO')));
>> CREATE TABLE
>> aemprende=# insert into pruebas values ('cadena1');
>> ERROR: el nuevo registro para la relación «pruebas» viola la restricción
>> check «pruebas_cadena_check»
>> aemprende=# insert into pruebas values ('aklop149');
>> ERROR: el nuevo registro para la relación «pruebas» viola la restricción
>> check «pruebas_cadena_check»
>> aemprende=# insert into pruebas values ('AKLOP149');
>> INSERT 0 1
>> aemprende=# insert into pruebas values ('OTRO');
>> INSERT 0 1
>> aemprende=#
>>
>>
>> Un saludo
>> --
>> TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net
>>
>
La verdad, para un solo caracter casi que te puede dar igual utilizar
char. ^^
Para lo que quieres haz lo mismo que te dijo jlcambero, pero poniendo
cada uno de los caracteres por separado
create table pruebas (cadena varchar check (cadena
IN('A','K','L','O','P','1','4','9')));
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Nicolás Domínguez Florit | 2007-12-04 21:37:02 | Re: Ayuda con una consulta... |
| Previous Message | Fevis Koste | 2007-12-04 20:37:03 | Re: Evaluar una cadena de caracteres para un Check |