From: | Miguel Rodríguez Penabad <penabad(at)gmail(dot)com> |
---|---|
To: | Erich Javier Briceño Fernadez <erich(dot)briceno(at)cne(dot)gob(dot)ve> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Crear Tablas con reglas |
Date: | 2007-07-18 22:18:04 |
Message-ID: | 95335e4e0707181518l5b81a55blbfdaf2d23b740837@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El 18/07/07, Erich Javier Briceño Fernadez <erich(dot)briceno(at)cne(dot)gob(dot)ve> escribió:
> Buenas a todos,
> Disculpen la pregunta pero no consigo en la documentación como resolver el
> problema.
> Estoy aprendiendo a trabajar en Postgres,
Bienvenido ;)
> y me gustaría crear una tabla que contenga un campo tipo character(50) pero
> deseo saber si existe alguna forma de definir la tabla para que Postgres
> realice un upper() sobre dicho dato (antes de almacenar) para que todos
> estén grabados en mayúsculas.
Hasta donde yo se, no se puede hacer de forma automática en la definición de la
tabla, ni con reglas (RULEs). La única forma que yo he visto es hacerlo mediante
disparadores (triggers). Aquí te mando un ejemplillo.
CREATE TABLE test(campo char(50));
CREATE FUNCTION fmayusc()
RETURNS TRIGGER
LANGUAGE plpgsql
AS $$
BEGIN
NEW.campo := upper(NEW.campo);
RETURN NEW;
END
$$;
CREATE TRIGGER tmayusc
BEFORE INSERT OR UPDATE ON test
FOR EACH ROW EXECUTE PROCEDURE fmayusc();
From | Date | Subject | |
---|---|---|---|
Next Message | Miguel Rodríguez Penabad | 2007-07-18 22:22:55 | Re: SELECT INTO |
Previous Message | Javier Ochoa | 2007-07-18 21:56:10 | RE: Velocidad al traer datos desde la base |