Lorena Gpe. M. Osorio escribió:
> Buen día a todos tengo una duda que talvez sea demasiado fácil pero ya ´me
> provocó dolor de cabeza, en mysql se resuelve con rtrim pero aquí en
> postgres no he podido encontrar como evitar que me inserte espacios en
> blanco.
Puedes agregar un CHECK a la columna que impida que insertes espacios al
final, por ej.
create table sin_espacio
( nombre TEXT CHECK (nombre !~ '[[:space:]]+$') );
alvherre=# insert into sin_espacio values ('joyeria');
INSERT 0 1
alvherre=# insert into sin_espacio values ('joyeria ');
ERROR: el nuevo registro para la relación «sin_espacio» viola la restricción
check «sin_espacio_nombre_check»
Te permite insertar espacios en otras partes de la cadena:
alvherre=# insert into sin_espacio values ('joyas de fantasía');
INSERT 0 1
alvherre=# insert into sin_espacio values (' joyas');
INSERT 0 1
O bien, mas sencillo, puedes poner un check que impida espacios al
frente y atras:
alvherre=# create table sin_espacios (nombre text check (nombre =
trim(nombre)));
CREATE TABLE
alvherre=# insert into sin_espacios values (' joyas');
ERROR: el nuevo registro para la relación «sin_espacios» viola la restricción
check «sin_espacios_nombre_check»
alvherre=# insert into sin_espacios values ('joyas ');
ERROR: el nuevo registro para la relación «sin_espacios» viola la restricción
check «sin_espacios_nombre_check»
alvherre=# insert into sin_espacios values ('joyas');
INSERT 0 1
alvherre=# insert into sin_espacios values ('otras joyas');
INSERT 0 1
(La principal diferencia es que este permite tabs y saltos de líneas, en
cambio la versión de arriba no los permite).
--
Alvaro Herrera http://www.amazon.com/gp/registry/3BP7BYG9PUGI8
"Limítate a mirar... y algun día veras"
--
TIP 1: para suscribirte y desuscribirte, visita
http://archives.postgresql.org/pgsql-es-ayuda