Re: Evaluar una cadena de caracteres para un Check

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: Raw Message | Whole Thread | 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')));

In response to

Browse pgsql-es-ayuda by date

  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